`

关于JAVA中两个list或者两个set集合取他们相同的元素

阅读更多
1.首先来弄下两个set集合,因为set要简单一些。
源码如下:
public class Test {
public static void main(String[] args) {
Set<String> set = new HashSet<String>();
Set<String> set1 = new HashSet<String>();
set.add("s");
set.add("s1");
set.add("s2");
set.add("s3");
        set1.add("s3")
set.retainAll(set1);
System.out.println(set);

}
}
输出的结果就是:set和set1的公共元素。
这里主要用到的就是set集合的retainAll()方法。查一下API就知道了,返回的是他们的公共元素

2.两个list之间取公共元素,这个相比两个set就要麻烦多了。
源代码如下:
public class Test {
public static void main(String[] args) {
//第一个List
List<String> list = new ArrayList<String>();
//第二个List
List<String> list1 = new ArrayList<String>();
//两个list的公共元素
List<String> list2 = new ArrayList<String>();
list.add("a");
list.add("a1");
list.add("a2");
list.add("a3");
list1.add("a3");
for(String str:list){
for(String str_final:list1){
if(str.equals(str_final)){
list2.add(str);
}
}
}
System.out.println(list2);
}
}
运用两次循环搞定

当一个List和一个set求交集的时候同理可得



分享到:
评论
2 楼 chaodilei 2013-12-05  
1870702720 写道
你这个里面的泛型是<String>,这样retainAll()和removeAll()都起效,可是你有没有尝试使用自己实例的某个实体类。比如:<User>,当你用某个实体类的时候就不行了,可不可以解释一下原因?

实体类的话可以在类中implement hashcode()这样的话实体之间可以用equal进行比较。
1 楼 1870702720 2013-07-04  
你这个里面的泛型是<String>,这样retainAll()和removeAll()都起效,可是你有没有尝试使用自己实例的某个实体类。比如:<User>,当你用某个实体类的时候就不行了,可不可以解释一下原因?
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java中set、list和map的使用方法实例

    // set容器接口的实现类有HashSet和 LinkedHashSet两个 // HashSet不保证迭代顺序, LinkedHashSet按照元素插入的顺序迭代. // 学习List对象容器的使用 // List容器中的对象允许重复 // 常用的list接口的实现类有...

    集合合并代码

    List lst1=new ArrayList(); List lst2=new ArrayList(); UserBean b1=new UserBean(); UserBean b2=new UserBean(); UserBean b3=new UserBean(); UserBean b4=new UserBean(); UserBean b11=new ...

    java面试宝典

    94、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)(D) 22 95、以下哪些属于Session的方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、...

    Java集合框架Collection接口.pdf

    在Java中,Collection接口是一个顶层接口,它有两个主要的子接口:List和Set。其中,List是一个有序的集合,可以包含重复的元素;而Set是一个不重复的集合,元素是无序的。 Collection接口的常用方法 1、add(Object ...

    Java集合框架.pdf

    Java集合框架概述 Java集合框架是一个抽象数据...Collection接口有两个重要的子接口:List和Set。 2、List接口 List接口是有序集合,可以存储重复元素。它定义了有序的列表,可以根据索引位置访问列表中的元素。List

    求2个集合的交集

    对于给定的两个集合,使用哈希表可以在线性时间复杂度内得到他们的交集和并集,具体说明如下: 假设有集合A={1, 7, 5, 13, 9, 10, 11}, B={5, 7, 10, 1, 18, 12}, 1)求交集,需要得到结果:A∩B={1, 5, 7,10} 思路...

    set.list.map接口

    2. 两个实现类HashSet(LinkHashSet)和TreeSet,TreeSet有排序功能(Set set=new TreeSet();set.add(new Integer(8)); set.add(new Integer(4)); set.add(new Integer(7));)输出后的结果是:4 7 8 Eg: package test...

    40道java集合面试题含答案(很全很详细)

    Collection容器存储一个元素集合,包括List、Set和Queue等类型。Map容器存储键/值对映射。 Collection接口是List、Set和Queue接口的父接口,定义了存取一组对象的方法。Collection接口继承自Iterable接口,这意味着...

    java面试要点集合

    List与Set的相同与不同之处,分别举出两个这两个接口的常用方法。(10分) 2。谈谈你对接口的理解与看法。(10分) 3。用递归方法实现 1的平方+2的平方+3的平方+……+i的平方。(10分) 4。(1)用JS方法实现提交...

    java 面试题 总结

     Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符...

    JAVA面试题最全集

    数据结构,如何遍历List中的元素? 如果要按照键值保存或者访问数据,使用什么数据结构? 要掌握Collection相关的接口和类的使用 56.使用StringBuffer类与String类进行字符串连接时有何区别? 57.调用Thread类的...

    java常用工具类的使用

    该类目前推荐使用的构造方法有两个: 构造方法 说明 Date() 按照当前系统时间构造一个Date对象。 Date(long date) 按照给定的时间毫秒值构造一个 Date 对象。 表1 java.util.Date类的构造方法 主要的方法有: ...

    浅谈java集合类以及示例

    前者每个位置只能保存一个元素,后者可以保存两个元素。 分类 Collection又可分为List、Set、Queue List下常用的有ArrayList、LinkedList、Vector、Stack Set下常用的有HashSet、TreeSet Queue又有Deque、Stack、...

    基础深化和提高-java容器

    Java标准库中提供了多种实现Collection接口的类,如ArrayList、LinkedList(List的实现)、HashSet、TreeSet(Set的实现)、PriorityQueue等。 Map: Map用于存储键值对(Key-Value Pair)的数据,它的实现类有...

    Collectio集合概述和常用方法

    Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List和java.util.Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。

    Java面试宝典-经典

    65、去掉一个Vector集合中重复的元素 46 66、Collection 和 Collections的区别。 47 67、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 47 68、你所知道的集合类都...

    Java面试宝典2010版

    65、去掉一个Vector集合中重复的元素 46 66、Collection 和 Collections的区别。 47 67、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 47 68、你所知道的集合类都...

    Java面试题,冲冲冲!.rar

    List、Set、Queue和Map是Java集合框架中的四个主要接口,它们各自具有不同的特点和用途。 1. List(列表): - 允许重复元素。 - 具有按照元素插入顺序维护的有序集合。 - 可以通过索引访问和操作元素。 - 常见实现类...

    java编程宝典

    3.1 如何遍历一个List/Set(foreach、Iterator、Lambda表达式) 11 3.2 如何遍历一个Map(foreach、Iterator、Lambda表达式) 11 3.3 如何实现一个Set&lt;Student&gt; set = new TreeSet(); 12 3.4 如何实现一个Map&lt;...

    高级java开发集合问题

    List 以索引来存取元素,有序的,元素是允许重复的,可以插入多个null; Set 不能存放重复元素,无序的,只允许一个null; Map 保存键值对映射; List 底层实现有数组、链表两种方式;Set、Map 容器有基于...

Global site tag (gtag.js) - Google Analytics