2017年4月7日星期五

对两个list中元素需求的处理

需求1:

  • 原始的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相交的元素。

没有评论:

发表评论