比较两个List元素是否相同
/** <Description functions in a word>
* <Detail description>
* @param <T>
* @param a
* @param b
* @return [Parameters description]
*
* @return boolean [Return type description]
* @exception throws [Excetion] [Exception description]
* @see [Related classes#Related methods#Related properties]
*/
public synchronized <T extends Comparable<T>> boolean compare(List<T> a, List<T> b) {
if(a.size() != b.size())
return false;
Collections.sort(a);
Collections.sort(b);
for(int i=0;i<a.size();i++){
if(!a.get(i).equals(b.get(i)))
return false;
}
return true;
}
查找出两个list的不同元素
public List<String> getDiffElementUseMap(List<String> list1,List<String> list2){ //获得两个list中的不同元素,map方法
final Integer flagUnique = 1;//无重复字符串的键值
log.info("====Start getDiffElementUseMap ====================="+new Date());
long runtime = System.nanoTime();//开始计时
//利用map中不能有重复元素的特点
Map<String, Integer> map = new HashMap<String,Integer>(list1.size()+ list2.size());
List<String> diffList = new ArrayList<String>();//用于保存两个list中不同的元素
for (String string : list1) {
map.put(string,flagUnique);//先将list1中元素复制到map中保存
}
for (String string : list2) {
Integer key = map.get(string);// 获得键值
if (key != null) {// 如果map中已经存在该元素,说明list1中存在该元素,那么将其key加1
map.put(string, ++key);
continue;
} else {// 如果不存在,则放入map中
map.put(string, flagUnique);
}
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() == flagUnique)// 在map中,键值为flagUnique的元素即为无重复的元素
{
diffList.add(entry.getKey());
}
}
log.info("getDiffElementUseMap run time:"
+ (System.nanoTime() - runtime));
log.info("====End getDiffElementUseMap ====================="+new Date());
return diffList;
}
分享到:
相关推荐
(userList是集合在dataMap中的key, user是集合中的每个元素, 类似<c:forEach items='userList' var='user'>), 如图: PLUS:若表格之外还有嵌套的循环,也需要用<#list table as map></#list>,注意这里的<#list>...
Python中是有查找功能的,五种方式:in、not in、count、index,find 前两种方法是保留字,后两种方式是列表的方法。 下面以a_list = [‘a’,’b’,’c’,’hello’],为例作介绍: string类型的话可用find方法去...
(1)输入一组整型元素序列,建立顺序表。 (2)实现该顺序表的遍历。 (3)在该顺序表中顺序查找某一元素,查找成功...(7)利用算法6建立两个非递减有序表并把它们合并成一个非递减有序表。 (8)编写一个主函数,调试上述算法。
对于给定的两个集合,使用哈希表可以在线性时间复杂度内得到他们的交集和并集,具体说明如下: 假设有集合A={1, 7, 5, 13, 9, 10, 11}, B={5, 7, 10, 1, 18, 12}, 1)求交集,需要得到结果:A∩B={1, 5, 7,10} 思路...
List、Set、MapList与Set集合的区别List、Map、Set三个接口,存取元素时,各有什么特点SetListMapList、Set、Map遍历的实现先来个Employee实体类List遍历的三种方式Set遍历的两种方式Map的几种遍历 List与Set集合的...
构造一个空的顺序表InitList_Sq; 初始化一个顺序表,将顺序表所有元素置为0 SetList_Sq 建立顺序表,给表中各元素赋值SetList_Sq ...合并两个顺序表,即将一个顺序表接在另一个顺序表之后Append_Sq
set1 -- 必需,要查找相同元素的集合 set2 -- 必需,可以是任何序列,可以多个,多个使用逗号 , 隔开 若是字典,按键比较 返回值:返回一个新的集合 set1={1,2,3} set2={3,4,5,2} list1=[2,3] dict1={2:9,'b':10} ...
(5)归并两个有序链表(MergeList_L) (6)两个有序链表求交(ListIntersection_L) (7)两个有序链表求差(SubList_L) 3. 栈和队列 (1)计算阿克曼函数(AckMan) (2)栈的输出序列(Gen、Perform) (3)递归...
分析: 先分别将两个文件中的内容读入列表中,再将列表分割 把不同属性的数据放到单独的列表中 分开存储 name tel email 然后遍历列表查找重合的姓名. 利用字符串方法join() 将 三个属性合并,然后保存在临时列表 ...
下面小编就为大家带来一篇在java List中进行模糊查询的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Set(集合)——交集 ...set1 -- 必需,要查找相同元素的集合 set2 -- 可选,可以是任何序列,可以多个,多个使用逗号 , 隔开 若是字典,按键比较 返回值:返回一个新的集合 set1={1,2,3} set2={3,4,5,2} list1=
两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将...
在SpringMVC中 所有的请求都由dispatcherServlet处理(url-pattern配置的是/),当配置文件中有对静态资源的处理 时候 ,先匹配 welcome-file-list 中的文件,依次查找,找到了就 返回,如果没有找到就继续匹配到...
从键盘输入需插入元素的位置,然后使用if(L->length>=L->listsize)语句判断是否超出元素原有个数,如超出,则再重新开辟一个新的空间,直接在最后面插入新的元素,如不超出,后面的元素依次后移一位,再插入元素。...
List、Set、Queue和Map是Java集合框架中的四个主要接口,它们各自具有不同的特点和用途。 1. List(列表): - 允许重复元素。 - 具有按照元素插入顺序维护的有序集合。 - 可以通过索引访问和操作元素。 - 常见实现类...
线性表(linear list)是数据结构的⼀种,线性表就是数据排列成⼀条先⼀样的结 构,每个线性表上的数据最多只有前和后两个⽅向。⼀个线性表是n个具有相同特性的数据元素的有限序列。 特点: 1. 集合中必存在唯⼀的⼀...
昨天面试上来就是一个算法,平时基本的算法还行,结果变个法就不会了。。。感觉应该刷一波Leecode冷静下。...举个例子说明下步骤,比如有列表test_list=[6,5,4,3,2,1],找出第3大的元素,就是4, 如
set1 -- 必需,要查找相同元素的集合,可以是任何序列 若是字典,按键比较 返回值:返回一个新的集合 set1={1,2,3} set2={3,4,5,2} list1=[2,3] dict1={2:9,'b':10} set3=set1.symmetric_difference(set2) print
Python经典面试题 Python常见面试...15:有两个序列 a,b,大小都为 n,序列元素的值任意整形数,无序;要求:通过交换 a,b 中的元素,使[序列 a 元素的和]与[序列 b 元素的和]之间的差最小 16:用 Python 匹配 HTML tag
一个简单的文件夹列表,列出了文件夹的前两个级别,包括它们的大小和文件数。然后可以将列表从屏幕上复制并粘贴到归档查找辅助工具中的范围/内容或布置说明中。 [使用-list选项] 具有标记为EAD组件的文件夹列表(前...