我有一个问题不知道怎么写,就是:有两个List集合List,我现在想要对这两个集合进行验证,1、验证内容是否一致,如果存在不一致的内容则打印不存在的数据。2、验证排序是否一致。不知道怎么写这个方法,我写的代码如下:
请教一下大家,我不知道怎么写它。
验证list中的元素是否一样,可以使用嵌套循环,通过遍历第一个集合再与第二个集合中的元素进行比较(不考虑顺序的状态下),
如果考虑顺序的话用一个循环就可以了
自己写了两个方法
public static void exist(List data,List pages){
Iterator ite1 = data.iterator();
Iterator ite2 = pages.iterator();
List printstr = new ArrayList();
while(ite1.hasNext()){
String str1 = (String) ite1.next();
if(!pages.contains(str1)){
printstr.add(str1);
}
}
while(ite2.hasNext()){
String str2 = (String) ite2.next();
if(!pages.contains(str2)){
printstr.add(str2);
}
}
System.out.println(printstr);
}
public static void range(List<String> data,List<String> pages){
Iterator ite1 = data.iterator();
Iterator ite2 = data.iterator();
boolean flag = true;
while(ite1.hasNext()&&ite2.hasNext()){
String str1 = (String) ite1.next();
String str2 = (String) ite2.next();
if(!str1.equals(str2)){
flag = true;
}
}
if(flag){
System.out.println("排序一致");
}else{
System.out.println("排序不一致");
}
}
使用迭代遍历,,转换成字符串后再做equal,加个布尔变量来判断输出就可以测试了吧
//验证是否相等可以直接调用equals方法,高效迅捷
list1.equals(list2)
// 不然你也可以自己写个双层循环来比较
排序的话,我记得只有 LinkedList类才有顺序,其他的都是乱序的,就没有比较顺序的意义了。
for(int i =0; i<linkedList1.size();i++){
if(!linkedList1[i].equals(linkedList2[i])){
System.out.println("不相等");
}
}