精华内容
下载资源
问答
  • 取两个集合中的相同元素

    千次阅读 2017-10-11 10:39:24
    取两个集合中的相同元素,并将结果转换为字符串code public String GetIntersection(String args1, String args2) { String[] arr1 = args1.split(","); String[] arr2 = args2.split(","); List<String> li

    取两个集合中的相同元素,并将结果转换为字符串


    code

        public String GetIntersection(String args1, String args2)
        {
            String[] arr1 = args1.split(",");
            String[] arr2 = args2.split(",");
            List<String> list3 = new ArrayList<String>();
            HashSet<String> hashSet = new HashSet<String>();
    
            for (String s : Arrays.asList(arr1)) {
                hashSet.add(s);
            }
            for (String s : Arrays.asList(arr2)) {
                if(hashSet.add(s)==false){
                    list3.add(s);
                }
            }
            return StringUtils.join(list3.toArray(),",");
        }

    args1,args2 是一个带逗号的字符串,eg: 5,6,7。先将字符串转换为数组,再转为集合,当然你也可以直接是集合,我的仅是我代码的需要。将第一个集合中的元素依次添加到set集合中,再将第二个集合遍历添加到set中,因为set元素唯一,因此添加不进去的元素就是两个集合共有的元素,将此元素添加的新建的集合中就好了。

    展开全文
  • "得到两取出非相同元素集合" );   for ( int i = 0; i (); i++) { System. out .println(list3.get(i)); } 运行结果如下: befor 1 2 after 1 得到两取出非相同...

     ArrayList<Integer> list1 = new ArrayList<Integer>();

            ArrayList<Integer> list2 =new ArrayList<Integer>();

            ArrayList<Integer> list3 =new ArrayList<Integer>();

            list1.add(1);

            list1.add(2);

            list2.add(2);

            list2.add(3);

            list2.add(4);

            System.out.println("befor");

            for (int i = 0; i < list1.size(); i++) {

    System.out.println(list1.get(i));

    }

            list1.removeAll(list2);//从list1中删除和list2中相同的元素

            System.out.println("after");

            for (int i = 0; i < list1.size(); i++) {

    System.out.println(list1.get(i));

    }

            list3.addAll(list1);

            list3.addAll(list2);

            System.out.println("得到两个取出非相同元素的集合");

            for (int i = 0; i < list3.size(); i++) {

    System.out.println(list3.get(i));

    }


    运行结果如下:

    befor

    1

    2

    after

    1

    得到两个取出非相同元素的集合

    1

    2

    3

    4


    展开全文
  • 1简单元素的查找一、找到2个集合相同和不同的元素本文分享的示例代码实现提取2个集合相同和不同的元素此处需要使用Collection集合所提供的一个方法:removeAll(Cellection list),removeAll方法用于从列表中移除...

    1简单元素的查找

    一、找到2个集合中相同和不同的元素

    本文分享的示例代码实现提取2个集合中相同和不同的元素

    此处需要使用Collection集合所提供的一个方法:removeAll(Cellection list),removeAll方法用于从列表中移除指定collection中包含的所有元素。

    语法 removeAll(Collection<?> c)

    c:包含从列表中移除元素的collection对象。

    该方法返回值为boolean对象,如果List集合对象由于调用removeAll方法而发生更改,则返回true,否则返回false

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.List;
    public class Test {
        public static void main(String args[]){
            //集合一
            List _first=new ArrayList();
            _first.add("jim");
            _first.add("tom");
            _first.add("jack");
            //集合二
            List _second=new ArrayList();
            _second.add("jack");
            _second.add("happy");
            _second.add("sun");
            _second.add("good");
            Collection exists=new ArrayList(_second);
            Collection notexists=new ArrayList(_second);
            exists.removeAll(_first);
            System.out.println("_second中不存在于_set中的:"+exists);
            notexists.removeAll(exists);
            System.out.println("_second中存在于_set中的:"+notexists);
        }
    }

    结果:

    _second中不存在于_set中的元素:[happy, sun, good]
        _second中存在于_set中的元素:[jack]

    二、去除List中的重复元素(此处只举最简单、常用的方法)

    利用HashSet元素不重复的特性(如果泛型是对象,那么需要实现equals和hashCode方法)


    public void testOtherList(){
    //新建List集合
    List nowList=new ArrayList();
    //加入元素
    nowList.add(1);
    nowList.add(2);
    nowList.add(2);
    nowList.add(55);
    nowList.add(3);
    nowList.add(1);
    nowList.add(56);
    nowList.add(56);
    //利用HashSet元素不重复的特性
    nowList=new ArrayList(new HashSet(nowList));
    System.out.println("去除重复数据后的集合:"+nowList);

    三、操作集合,求交集、并集和差集

    package day0527;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    
    /**
     * 
     * @ClassName: FindNumber
     * @Description: A={6,3,9,3,2,4,5,7},B={5,8,6,2,1,9},则输出3,4,7,1,8 思路:全集除掉交集,就是结果
     * @author
     * @date 2016年5月27日 上午9:56:25
     *
     */
    public class FindNumber {
    public static void main(String[] args) {
    // 注意:一定要使用创建对象的格式创建数组
    Integer[] a = new Integer[] { 6, 3, 9, 3, 2, 4, 5, 7 };
    Integer[] b = new Integer[] { 5, 8, 6, 2, 1, 9 };
    List _a = Arrays.asList(a);
    List _b = Arrays.asList(b);
    // 创建集合
    Collection realA = new ArrayList<Integer>(_a);
    Collection realB = new ArrayList<Integer>(_b);
    // 求交集
    realA.retainAll(realB);
    System.out.println("交集结果:" + realA);
    Set result = new HashSet();
    // 求全集
    result.addAll(_a);
    result.addAll(_b);
    System.out.println("全集结果:" + result);
    // 求差集:结果
    Collection aa = new ArrayList(realA);
    Collection bb = new ArrayList(result);
    bb.removeAll(aa);
    System.out.println("最终结果:" + bb);
    /**
    * 交集结果:[6, 9, 2, 5] 全集:[1, 2, 3, 4, 5, 6, 7, 8, 9] 最终结果:[1, 3, 4, 7, 8]
    */
    }
    }

    二 查找两个有复杂对象的集合中的不同元素和相同的元素


    public class RolePerm{
    
        private Long rid;
        private Long pid;
        public void setRid(Long rid){
            this.rid=rid;
        }
        public Long getRid(){
            return rid;
        }
        public void setPid(Long pid){
            this.pid=pid;
        }
        public Long getPid(){
            return pid;
        }
        /**
         *重写hashCode,方便集合的操作
         */
        @Override
        public int hashCode() {
            return (int) (this.pid+this.rid);
        }
        /**
         *重写equals,只有pid和rid都相等,才认为这个对象是想等的
         */
        @Override
        public boolean equals(Object obj) {
            if(!(obj instanceof RolePerm)){
                return false;
            }
            RolePermrp = (RolePerm) obj;
    
            return (this.pid == rp.pid) && (this.rid == rp.rid);
    
        }
    
    }

    提取两个集合中的不同元素和相同的元素

    /**
     * 获取两个集合不同
     * @param rps1  rps1数据
     * @param rps2  rps2数据
     * @return  0:rps1中独有的数据;1:交集的数据;2:rps2中的独有数据
     */
    private Map<Integer, List<RolePerm>> findListDiff(List<RolePerm> rps1,List<RolePerm> rps2){
        //判断不能为空
        if(rps1 == null || rps1.isEmpty() || rps2 == null || rps1.isEmpty()) return null;
        //保存最后的数据
        Map<Integer, List<RolePerm>>  mapList = new HashMap<Integer, List<RolePerm>>(3);
    
        //复制rps1,作为备份
        List<RolePerm> rps1_bak = new ArrayList<RolePerm>(rps1);
    
        //1、获取rps1中与rps2中不同的元素
        rps1.removeAll(rps2);
    
        //2、获取rps1和rps2中相同的元素
        rps1_bak.removeAll(rps1);
    
        //3、获取rps2中与rps1中不同的元素
        rps2.removeAll(rps1_bak);
    
        //经过此转换后rps1中数据与rps2中的数据完全不同
        //rps1_bak是rps1和rps2的交集
        //rps2中的数据与rps1中的数据完全不同
    
        mapList.put(0, rps1);//rps1中独有的数据
        mapList.put(1, rps1_bak);//交集的数据
        mapList.put(2, rps2);//rps2中的独有数据
    
    
        return mapList;
    }
    备注:这是稍微复杂的集合,简单的集合没有这么复杂


    展开全文
  • java比较两list集合元素是否相同

    千次阅读 2019-05-24 14:38:36
    import java.util.ArrayList; import java.util.Arrays; import java.util.List;...顺序不一样,元素一样依然是false ,这方法是不合适的,经过研究学习发现这博主写的特别好,在这里贴一下: 添加链接描述
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class ArrayEqualTest
    {
        public static void main(String[] args){
            List<String> a = new ArrayList<>();
            a.add("a");
            a.add("b");
            a.add("c");
            List<String> b = new ArrayList<>();
            b.add("a");
            b.add("b");
            b.add("d");
            String[] aArray = a.toArray(new String[]{});
            String[] bArray = b.toArray(new String[]{});
            System.out.println(Arrays.equals(aArray,bArray));
        }
    }
    
    

    顺序不一样,元素一样依然是false ,这个方法是不合适的,经过研究学习发现这个博主写的特别好,在这里贴一下:
    添加链接描述

    展开全文
  • * 有两个集合A和B,判断这两个集合是否包含相同元素, * 可以使用retainAll方法:A.retainAll(B)。 * 如果存在相同元素,A中仅保留相同元素。 * 如果不存在相同元素,A会变为空。 */ public class ListTest...
  • 有两个集合newCoures和oldCourses,判断这两个集合是否包含相同的对象或元素可以使用retainAll方法:oldCourses.retainAll(newCoures)。 如果存在相同元素,oldCourses中仅保留相同元素。 如果不存在相同...
  • 此处需要使用Collection集合所提供的一个方法:removeAll(Cellection list) 实现代码如下: import java.util.ArrayList; import java.util.Collection; import java.util.List; public class Test { public ...
  • 在两数据量很大的list集合中(每集合都是10万条数据,集合元素为Student对象),怎么查找 # 两集合中Student对象name属性相同的元素?
  • 此处需要使用Collection集合所提供的一个方法:removeAll(Cellection list) 实现代码如下: import java.util.ArrayList; import java.util.Collection; import java.util.List; public class Test { public ...
  • * 获取两个集合的不同元素 *  * @param collmax * @param collmin * @return */ @SuppressWarnings({ "rawtypes", "unchecked" }) public static Collection getDiffent(Collection collmax, Collection ...
  • 如果想过滤掉重复元素,set集合有这特点,可以直接过滤掉重复的元素,而list集合可以存储相同元素
  • 判断两个集合元素是否相同 1)基本数据类型 public static void main(String[] args) { List&lt;Integer&gt; list1=new ArrayList&lt;Integer&gt;(); list1.add(1); list1.add(2); list1....
  • public class CollectionUtil { private CollectionUtil() { } /** * 找出第一个集合中不存在与第二个集合元素 * * @param collmax * @param collmin * @return */ @SuppressWarnings({ "rawtypes", "unchecked" ...
  • 比如这样一个需求,现有一个Teacher对象集合一个Student对象集合,需要查出两个集合中姓名相同的记录该怎么办呢,通常我们想到的肯定是用双层for循环来做,如果用java8新特性lambda表达式怎么做呢?废话不多说,...
  • List<FindByStudentForPayResult> result = studentForPayResultList.stream().filter( (studentForPayResult) ->payList.stream().map(BaseActivePay::getStudentId).collect(Collectors.toList())....
  • 在项目开发中,经常会对比不同的集合,获取里面不相同元素,一般会用到好几种方法,这里算是种,mark一下。 public static List&lt;Integer&gt; getDiffrent(List&lt;Integer&gt; list1, List&...
  • 如果想要集合中的元素hui
  • java比较两List集合相同元素

    千次阅读 2018-11-21 09:31:57
    //第一个集合 List<Test> list1=new ArrayList(); Test list1_1=new Test(); list1_1.setNumber(1); list1.add(list1_1); Test list1_2=new Test(); list1_2.setNumber(3); list1.add(list1_2); ...
  • 判断2个集合中是否有相同元素

    千次阅读 2019-08-01 15:52:04
    用Collections.disjoint(Collection<... c2)方法:有相同元素返回false, List a = new ArrayList(); a.add("AHRG"); a.add("BHRC"); a.add("WHRA"); a.add("TEMA"); a.add("TEMD"); List b = n...
  • //声明一个集合 List list = new List(); //声明一个数组 string[] Array = new string[] { }; //接受集合遍历出来的数据 string str = ""; //给集合添加数据
  • 此处需要使用Collection集合所提供的一个方法:removeAll(Cellection list) 实现代码如下: import Java.util.ArrayList; import java.util.Collection; import java.util.List; public class Test { public...
  • //第一个list集合 List list_a=new ArrayList(); list_a.add("A"); list_a.add("B"); list_a.add("C"); list_a.add("D"); //第二个list集合 List list_b=new ArrayList(); list_b.add("C"); list_...
  • 今天来比较一下两个list,然后分别找出相同元素和不同元素集合。先上一个简单的示例:(注:因为测试数据量比较小,用ArrayList,如果涉及到百万数据的插入移除操作的话,用LinkedList)[java] view plain copy&...
  • Java判断一个数组是否有相同元素

    千次阅读 2019-10-27 22:11:11
    1.如果只是需要判断是否包含相同元素而不需要找出相同元素是哪些,直接放在set集合中,然后看set集合和数组长度是否一致即可 import java.util.HashSet; import java.util.Set; public class Test { public ...
  • 一个list集合,不确定长度,其中的元素包括名称、数量两项。按名称处理,将名称相同的数量相加进行统计,但是这么写好像有问题啊,求指点 ``` List<QuestionTypeSettingVO> qtSettings; QuestionTypeSettingVO ...
  • 1.CollectionUtils.diff(Collection c1, Collection c2),返回集合c2不包含集合c1的元素 public static void main(String[] args) { List<String> list1 = new ArrayList<String>(); list1.add("1");...
  • 把1-100 数随机放入到 数组长度为[97] 并且这些元素不能重复,找出未输入进数组的数!
  • List集合统计相同名称的元素数量

    千次阅读 2018-08-17 15:16:49
    package com.it313.cgs.back.service; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; public class A { ... * @pa...
  • JAVA 获取Set集合和List集合相同元素 代码: public static void main(String[] args) { Set set = new HashSet(); set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("e"); set...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 476,072
精华内容 190,428
关键字:

一个集合的元素可以相同