import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.ListIterator; /** * Tony 的 java **/ @SuppressWarnings("all") public class Exercise02 { public static void main(String[] args) { /** * 比较两个集合是否相等: contains()方法 */ //Arrays.asList 将数组转化成List集合的方法 ArrayList<String> list1 = new ArrayList<>(Arrays.asList("A", "B", "C")); ArrayList<String> list2 = new ArrayList<>(Arrays.asList("A", "B", "C")); System.out.println(equals(list1, list2)); } public static boolean equals(List<String> list1, List<String> list2) { //(1)list1和list2都为空,返回true if (list1 == null && list2 == null) { return true; } //(2)lis1 和 list2 一个为空,一个不为空,直接返回false if (list1 == null || list2 == null) { return false; } //(3)他们的地址相同直接返回true if (list1 == list2) { return true; } //(4)判断传入的连个集合长度是否一致,不一致返回false if (list1.size() != list2.size()) { return false; } //(5)判断集合1 的元素是否存在在集合2中 用 contains()): //遍历集合1:增强for循环 for (String string : list1) { if (!list2.contains(string)) {//contains:返回值为boolean类型 return false; } } //(6)判断集合2 的元素是否存在在集合1中 用 contains()): //遍历集合1: 迭代器 //1.得到迭代器 ListIterator<String> iterator = list2.listIterator(); //2. while (iterator.hasNext()) { String next = iterator.next(); if (!list2.contains(next)) { return false; } } return true; } }
一、用到的方法:
1.Arrays.asList()------将数组转换为集合
2.contains()
二、思路:
1.编写一个方法,参数为List1,List2
2.遍历集合中的每个元素:for,增强for,迭代器,取出元素后和另一个集合进行对比
3.为了增加代码的健壮性,可添加多个判断,如:两个都为null,一个为null,两个地址直接相等