天天看點

Java中需要注意的一些案例

在編寫Java代碼中,我們或多或少會遇到下面的一些案例,對于這些情況,我們怎麼做?那麼接下來我介紹一些方法,大家可以看一下:

1.判斷數組{"a","b","c","d"}是否包含有"a",見以下代碼,你喜歡用哪一種呢,我推薦使用ifcontainsByArrays,因為該方法内部更嚴謹一些。

public static void main(String[] args) {
  String [] strs = {"a","b","c","d"};
 
  Test t = new Test();
  System.out.println(t.ifcontains(strs, "a"));
 
  System.out.println(t.ifcontainsByArrays(strs, "a"));
    }
    public boolean ifcontains(String [] strs, String str) {
  for (String s : strs) {
    if (s.equals(str)) {
    return true;
    }
  }
  return false;
    }
    public boolean ifcontainsByArrays(String [] strs, String str) {
  // 注意:Arrays.asList()方法傳回的是 java.util.Arrays.ArrayList而不是java.util.ArrayList
  return Arrays.asList(strs).contains(str);
    }      

2.在循環中删除一個清單中的元素,見如下代碼,我建議使用removeByIterator方法,因為不需要再建立新的list。

public static void main(String[] args) {
  List<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));
  List<String> list1 = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));
 
  Test1 t = new Test1();
  for (String s : t.removeByIterator(list, "c")) {
    System.out.print(s);
  }
  System.out.println();
  System.out.println("----------------------------");
  for (String s : t.removeByNewList(list1, "c")) {
    System.out.print(s);
  }
    }
    public List<String> removeByNewList(List<String> list, String str) {
  List<String> newList = new ArrayList<String>();
  for (String s : list) {
    if (!s.equals(str)) {
    newList.add(s);
    }
  }
 
  return newList;
    }
    public List<String> removeByIterator(List<String> list, String str) {
  Iterator<String> iterator = list.iterator();
  while (iterator.hasNext()) {
    String s = iterator.next();
    if (s.equals(str)) {
    // 移除疊代器傳回的元素
    iterator.remove();
    }
  }
 
  return list;
    }      

暫時先列舉兩個,有時間的話,繼續