Java判断List集合中是否包含某个元素
在日常开发中,经常会遇到判断list集合中包含某个元素的额需求,特此记录。
使用for循环
public class ListTest { public static boolean loop(List<String> list, String value) { for (String str : list) { if (Objects.equals(str, value)) { return true; } } return false; } public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); System.out.println("循环判断:" + loop(list, "2")); } }
使用List.contains判断
public class ListTest { public static boolean listContains(List<String> list, String value) { return list.contains(value); } public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); System.out.println("contains判断:" + listContains(list, "2")); } }
使用set.contains判断
public class ListTest { public static boolean setContains(List<String> list, String value) { Set<String> stringSet = new HashSet<String>(list); return stringSet.contains(value); } public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); System.out.println("setContains判断:" + setContains(list, "2")); } }
使用Arrays.binarySearch判断
public class ListTest { public static boolean arraysBinarySearch(List<String> list, String value) { int a = Arrays.binarySearch(list.toArray(), value); if(a > 0) { return true; }else { return false; } } public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); System.out.println("arraysBinarySearch判断:" + arraysBinarySearch(list, "2")); } }
Arrays.binarySearch()方法只能用于有序数组!!!
使用ArrayUtils.contains判断
public class ListTest { public static boolean arrayUtils(List<String> list, String value) { return ArrayUtils.contains(list.toArray(), value); } public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); System.out.println("arrayUtils判断:" + arrayUtils(list, "2")); } }
ArrayUtils 属于 Apache Commons类库
ArrayUtils的contains方法的源码也是使用循环判断的方式。
if (array == null) { return -1; } else { if (startIndex < 0) { startIndex = 0; } int i; if (objectToFind == null) { for(i = startIndex; i < array.length; ++i) { if (array[i] == null) { return i; } } } else { for(i = startIndex; i < array.length; ++i) { if (objectToFind.equals(array[i])) { return i; } } } return -1; }
通常判断list集合包含元素就这五个方法,另外就该考虑效率问题了 …
下一篇:
Minio的下载安装配置使用。