1、数组复制
Integer[] arr={1,2,3,4}; List<Integer> list = Arrays.asList(arr); //注意 大小是固定的 // list.add(100);// 不能添加元素 System.out.println(list); // 最佳实践 -- 数组的复制 ArrayList<Integer> arrayList = new ArrayList<>(Arrays.asList(arr)); arrayList.add(101); System.out.println(arrayList);
2、判断元素是否包含
Set<Integer> set = new HashSet<Integer>(Arrays.asList(arr)); if(set.contains(3)){ System.out.println("1->包含3"); //这样找元素不合适,效率低 } // 最佳实践 -- 元素包含判断 boolean b = ArrayUtils.contains(arr, 3); // √ 最佳实践 if (b) { System.out.println("2->包含 3 "); }
3、迭代器方式删除集合元素
//最佳实践 -- 删除集合元素 ArrayList<String> list3 = new ArrayList<String>(Arrays.asList("a","b","c","d","a")); Iterator<String> iterator = list3.iterator(); while (iterator.hasNext()){ String next = iterator.next(); if (next.equals("a")){ iterator.remove(); } } System.out.println(list3);
4、返回空的集合,而不是null
public List<String> getBookTypesById(Integer id){ // ... return Collections.EMPTY_LIST; }
5、字符串拼接(非线程安全的情况下务必使用StringBuilder)
StringBuilder效率优于StringBuffer,但是StringBuffer线程安全。
6、对象只在需要的时候初始化
private List<String> lists; public List<String> getList(){ if (null == lists){ lists = new ArrayList<>(); } return lists; }
7、待完善。。。