集合判空
判断集合内部元素是否为空时使用 isEmpty() 方法,而不是 size()==0 的方式。因为isEmpty() 方法的可读性更好,并且时间复杂度为 O(1)。
集合转 Map
当使用toMap() 方法转集合时需要注意value不能为空,不然会抛出异常。因为toMap() 方法中调用了 Map 接口的 merge() 方法,而merge() 方法会调用 Objects.requireNonNull() 方法来判断 value 是否为空,为空就会抛出异常。
集合遍历
不能在 foreach 里进行remove/add操作。如果实在要进行这些操作必须使用Iterator方法,并发时还需对Iterator对象加锁。remove/add 操作直接调用的是集合自己的方法,而不是Iterator的remove/add方法,导致 Iterator 中有元素被 remove/add ,然后,它就会抛出一个 ConcurrentModificationException 来提示用户发生了并发修改异常。
集合去重
去重一般使用set对象,因为set元素具有不可重复性,每个元素都是唯一的,可以使用这特性快速的找出重复元素。set中查找重复的方法对比其他集合的时间复杂度要小些。
集合转数组
集合转数组必须使用 toArray(T[] array) 方法,且传入的类型必须是完全一致、长度为 0 的空数组。
数组转集合
使用Arrays.asList() 数组转集合时,不能使用其修改集合相关的方法。否则 add/remove/clear 方法会抛出异常。