一、判断集合是否为空集
判断一个集合是否为空集,可以通过isEmpty()方法进行判断。
Set<String> set = new HashSet<>(); if (set.isEmpty()) { System.out.println("Set is empty"); }
isEmpty()是Collection接口中的方法,因此对于List、Set、Queue等接口的实现类都可以使用该方法。当集合中的元素个数为0时,返回true,否则返回false。
除了使用isEmpty()方法,我们也可以使用集合的size()方法来进行判断,如果元素个数为0,那么表示该集合为空。
Set<String> set = new HashSet<>(); if (set.size() == 0) { System.out.println("Set is empty"); }
二、判断集合是否为空collections
对于需要对集合进行判空的情况,可以使用Java开发包中的Collections类。该类提供了emptyXxx()方法,可以方便地创建空的集合。
List<String> list = Collections.emptyList(); Set<String> set = Collections.emptySet(); Map<String, String> map = Collections.emptyMap();
这样创建出的集合是不可变的,也就是说不能往里面添加任何元素。但是对于不能修改的集合,isEmpty()方法也可以正确判断是否为空。
三、判断集合是否为空的方法
除了使用isEmpty()和size()方法来判断集合是否为空以外,Java还提供了以下方法:
1. Collections.frequency()
Collections.frequency()方法可以统计集合中指定元素出现的次数。如果指定元素为null,则表示集合中null值的个数。
List<String> list = new ArrayList<>(); list.add("a"); list.add("b"); int count = Collections.frequency(list, "c"); // count为0
对于只关注是否为空的情况,可以使用以下代码判断:
List<String> list = new ArrayList<>(); if (Collections.frequency(list, null) == list.size()) { System.out.println("List is empty"); }
2. Apache Commons CollectionUtils.isEmpty()
Apache Commons Collections是一个提供了很多实用工具集的库,里面包含了一个判断集合是否为空的方法isEmpty()。
List<String> list = new ArrayList<>(); if (CollectionUtils.isEmpty(list)) { System.out.println("List is empty"); }
四、判断集合是否为空的工具类
除了上述方法外,我们可以封装一个判断集合是否为空的工具类,使得代码更加简洁明了。
public class CollectionUtil { /** * 判断集合是否为空 * * @param collection 集合类 * @param泛型类型 * @return 如果集合为空,返回true;否则返回false */ public static <T> boolean isEmpty(Collection<T> collection) { return collection == null || collection.isEmpty(); } }
这样,在使用时就可以直接调用该方法进行判断。
List<String> list = new ArrayList<>(); if (CollectionUtil.isEmpty(list)) { System.out.println("List is empty"); }
五、判断集合是否为子空间
有时候需要判断一个集合是否是另一个集合的子空间,也就是说两个集合元素是否完全相同,可以使用containsAll()方法进行判断。
List<String> list1 = Arrays.asList("a", "b"); List<String> list2 = Arrays.asList("b", "a"); if (list1.containsAll(list2) && list2.containsAll(list1)) { System.out.println("List1 and list2 are equal"); }
六、判断集合是否为空的最优方法
判断集合是否为空,通常来说使用isEmpty()方法是最简洁、最优的方法。Java的所有集合类都实现了该方法。
七、如何判断集合是否为空
根据以上讨论,可以总结出如何判断集合是否为空的方法:
- isEmpty()方法
- size()方法
- Collections.frequency()方法
- Apache Commons CollectionUtils.isEmpty()方法
- 自定义工具类
八、判断数组是否为空
除了集合,对于数组也有判断是否为空的方法,可以通过数组的长度length属性来进行判断。
int[] array = {}; if (array.length == 0) { System.out.println("Array is empty"); }
对于数组也可以封装一个判断是否为空的工具类。
public class ArrayUtil { /** * 判断数组是否为空 * * @param array 数组 * @param泛型类型 * @return 如果数组为空,返回true;否则返回false */ public static <T> boolean isEmpty(T[] array) { return array == null || array.length == 0; } }
这样,在使用时就可以直接调用该方法进行判断。
String[] array = {}; if (ArrayUtil.isEmpty(array)) { System.out.println("Array is empty"); }