- 原始的list1={1,2,3},现在对其进行增删,得到list2={2,3,4}。现在要找出新增的元素,在这里是{4},以及被删除的元素,在这里是{1}。
解决:
- 使用java自带的removeAll()方法:
list1.removeAll(list2); // list1中相对于list2中不同的元素,为1;
- 下面算法获得的结果是{1,4}:
Map<String, Integer> map = new HashMap<String, Integer>();
List<String> maxList = list1;
List<String> minList = list2;
if (list2.size() > list1.size()) {
maxList = list2;
minList = list1;
}
for (String str : maxList) {
map.put(str, 1);
}
for (String str : minList) {
Integer strCount = map.get(str);
if (null != strCount) {
map.put(str, ++strCount);
continue;
}
map.put(str, 1);
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() == 1) {
System.out.println(entry.getKey());
}
}
需求2:
- 从数据库中获得模糊查询的list1,通过权限判断获得list2,从list1中获取与list2相交的元素。
没有评论:
发表评论