public static <T> List<T> compare(T[] t1, T[] t2) {
List<T> list1 = Arrays.asList(t1);
List<T> list2 = Arrays.asList(t2);
//用来保存最后结果的集合
List<T> list3 = new ArrayList<>();
for (T t : t2) {
if (!list1.contains(t)) {
list3.add(t);
}
}
for (T t:t1) {
if (!list2.contains(t)) {
list3.add(t);
}
}
return list3;
}
public static void main(String[] arg){
String[] array1 = {"1", "2", "3","12"};
String[] array2 = {"1", "2", "3", "4","44"};
List<String> list = compare(array1,array2);
System.out.println("----两个数组找出不同的元素-----");
for (String num : list) {
System.out.print(num+" ");
}
}
public static void compare(String[] t1, String[] t2) {
Set<String> set1 = new HashSet<>(Arrays.asList(t1));
Set<String> set2 = new HashSet<>(Arrays.asList(t2));
Set<String> set3 = new HashSet<>(set2);
// set集合有去重特性
set3.addAll(set1);
//retainAll():保留包含在指定 collection 中的元素;
set1.retainAll(set2);
// removeAll(); 移除 set 中那些包含在指定 collection 中的元素 ;
set3.removeAll(set1);
System.out.println(set3);
}
public static void main(String[] arg){
String[] array1 = {"1", "2", "3","12"};
String[] array2 = {"1", "2", "3", "4","44"};
compare(array1,array2);
}
我的业务是传入数组和数据库对比数据库没有则删除,数据库有则修改,数组多则添加
public static void compare(String[] t1, String[] t2) {
//用来保存没有的数据 也就是前端传进来的新数据 新添加
List<String> addArrayList= new ArrayList(Arrays.asList(t1));
//用来保存数据库有的数据 但是 前端没有的数据 删除
List<String> delArrayList = new ArrayList(Arrays.asList(t2));
for (String s:t1){
for (String ss:t2){
if (s.equals(ss)){
//相等的话 证明数据已有数据了 不需要删除 也不需要添加 那需要在数组里面把这个条数据删除
addArrayList.remove(s);
delArrayList.remove(ss);
}
}
}
System.out.println("t3:"+addArrayList);
System.out.println("t4:"+delArrayList);
}
public static void main(String[] arg){
String[] array1 = {"1", "2", "3","12"};
String[] array2 = {"1", "2", "3", "4","44"};
compare(array1,array2);
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/115959.html