精华内容
下载资源
问答
  • 原对list去重,通过hashMapkey重复。package com.mszl.interview;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.manulife.entity.Idcard;...

    对list去重,通过hashMap的key不能重复。

    package com.mszl.interview;

    import java.util.ArrayList;

    import java.util.HashMap;

    import java.util.List;

    import java.util.Map;

    import com.manulife.entity.Idcard;

    public class Tests {

    public static void main(String[] args) {

    List lists = new ArrayList();

    Idcard a = new Idcard();

    a.setAge(18);

    a.setName("张无忌");

    a.setSex("男");

    lists.add(a);

    Idcard b = new Idcard();

    b.setAge(23);

    b.setName("张三丰");

    b.setSex("男");

    lists.add(b);

    Idcard c = new Idcard();

    c.setAge(18);

    c.setName("张无忌");

    c.setSex("男");

    lists.add(c);

    System.out.println("去重前----------------------");

    for(Idcard sd :lists){

    System.out.println(sd.toString());

    }

    lists = Removedup(lists);

    System.out.println("去重后----------------------");

    for(Idcard sd :lists){

    System.out.println(sd.toString());

    }

    }

    public static List Removedup(List list){

    Map hash = new HashMap<>();

    // 通过hashMap的key不能重复,达到去重的目的

    for(Idcard aa :list){

    hash.put(aa.getName(),aa);

    }

    List newList = new ArrayList();

    for(Map.Entry set : hash.entrySet()){

    newList.add(set.getValue());

    }

    return newList;

    }

    }

    展开全文
  • List是有序且重复的,Set是无序不重复的。这里说的顺序有两个概念,一是按添加的顺序排列,二是按自然顺序a-z排列。Set并不是无序的,传统说的...不保证元素添加的顺序,不保证元素自然的顺序,不可重复:HashSet 保...

    ListSet\color{#FF0000}{List有序可重复,Set无序不重复,这里指的是添加数据的顺序。}

    但这里说的顺序有两个概念,一是按添加的顺序排列,二是遍历结果按自然顺序a-z排列。Set并不是无序的,传统说的Set无序是指HashSet,它不能保证元素的添加顺序,更不能保证自然顺序,而Set的其他实现类是可以实现这两种顺序的。

    保证元素添加的顺序,不保证元素自然的顺序,可重复:List

    不保证元素添加的顺序,不保证元素自然的顺序,不可重复:HashSet

    保证元素添加的顺序,不可重复:LinkedHashSet\color{#FF0000}{LinkedHashSet}

    保证元素自然的顺序,不可重复:TreeSet

    实例:

    package com.xhy.xczx.test;
    
    import java.util.*;
    
    /**
     * 〈测试类〉
     *
     * @author Barrett
     * @version 1.0.0
     * @time 2020/1/21
     */
    public class JavaTest1 {
        public static void main(String[] args) {
            /** List 保证元素的添加顺序,可以重复 **/
            List<String> list = new ArrayList<String>();
            list.add("s1");
            list.add("s3");
            list.add("s5");
            list.add("s4");
            list.add("s4");
            list.add("s2");
            list.forEach(e -> System.out.print(e + " "));
            System.out.println();
    
            /** HashSet  无序 不能重复**/
            Set<String> hashSet = new HashSet<>();
            hashSet.add("s1");
            hashSet.add("s3");
            hashSet.add("s5");
            hashSet.add("s4");
            hashSet.add("s4");
            hashSet.add("s2");
            hashSet.forEach(e -> System.out.print(e + " "));
            System.out.println();
    
            /** LinkedHashSet 保证元素添加的顺序**/
            Set<String> linkedHashSet = new LinkedHashSet<>();
            linkedHashSet.add("s1");
            linkedHashSet.add("s3");
            linkedHashSet.add("s5");
            linkedHashSet.add("s4");
            linkedHashSet.add("s4");
            linkedHashSet.add("s2");
            linkedHashSet.forEach(e -> System.out.print(e + " "));
            System.out.println();
    
            /** 保证元素自然的顺序:TreeSet **/
            Set<String> treeSet = new TreeSet<>();
            treeSet.add("s1");
            treeSet.add("s3");
            treeSet.add("s5");
            treeSet.add("s4");
            treeSet.add("s4");
            treeSet.add("s2");
            treeSet.forEach(e -> System.out.print(e + " "));
            System.out.println();
        }
    }
    
    

    结果:
    在这里插入图片描述

    展开全文
  • 在日常工作中,工资条制作是HR们必不可缺少工作,尤其是面对百人以上工资条时,如果一个个复制输入话,效率实在是太低。今天我们为大家分享一个在PowerQuery中快速制作出工资条方法。下图是一份工资表案例...

    0b97b18739ee99a17ad21c55b5d22e8b.png

    在日常工作中,工资条制作是HR们必不可缺少的工作,尤其是面对百人以上的工资条时,如果一个个复制输入的话,效率实在是太低的。今天我们为大家分享一个在PowerQuery中快速制作出工资条的方法。

    f23481301ed9d284b4b7472c9ab0cefc.png


    下图是一份工资表案例数据,我们需要将其转换为第二张图中的工资条格式,如何实现呢?

    7dd59f389701fb952a1904de73288f67.png

    d5f91ed2f845d072643e7c1d5df95350.png


    简单来说,我们仅需使用一套公式即可快速实现。打开【主页】-【高级编辑器】,输入下图中的公式后点击确认,这样工资条就创建完成了。你只需复制公式并替换对应值,就可以创建自己的工资条啦。

    a59af0d66172eb721f8509fd82c0f70e.png


    事实上,这套公式共分为了5个步骤来实现,为了容易理解和使用,我们对这5个步骤一一进行解读。
    第一步:使用Table.ToRows函数将所有工资行值转化为一个list列,具体如下图中的公式。

    b04ed8d193ccb9832feb18cc6e61bb05.png


    第二步:使用Table.ColumnNames函数将工资表列名提取为一列,用于后面与工资行值合并创建。

    e109240c47e844f0b5a89ef1e4920750.png


    第三步:使用List.Count函数计算工资行值的总行数,用于后面创建空白行的次数。

    7b855b0015481185a23f9e62fd95ed60.png


    第四步:使用列名遍历行值list列,并与重复行数的null列一同创建新的table集,用List.TransformMany函数将所有table集转化为table列。

    f60d0750d0a5b80d05f5a236c83fbf86.png


    第五步:使用Table.Combine函数将table中所有列生成行值并合并,确认之后将所有null值替换为空,这样HR们需要的工资条就顺利创建完成了。

    d6307d0bc06b70d4de1a5a8383afc9e3.png

    923d7dc402804db8f2da737c3b7d8105.png

    d442552863c3583b5dc926d4c89e4073.png

    当工资表的内容发生更改时,可以点击【主页】-【全部刷新】完成表格数据的同步更新。我们还可以修改源文件的存储地址,将其应用到其他工资表文件,实现公式的重复利用。如需获取案例数据(含完整公式文本),请至公众号回复暗号【工资条制作】下载即可。

    展开全文
  • 问题由上篇而来using System.Collections.Generic; using System; namespace pdfToExcel{ class MySortList:SortedList { private class MyComparer : IComparer {
     问题由上篇而来
    using System.Collections.Generic;
    using System;
    namespace pdfToExcel{    
        class MySortList<K,V>:SortedList<K,V>    
        {        
            private class MyComparer<K> : IComparer<K>        
            {            
                public int Compare(K x, K y)            
                {
                    return 1;   //永远不等,允许重复      
                            
                }        
            }        
              
            public MySortList():base(new MyComparer<K>())        
             {                    
             }         
             public void Add(K key, V value)        
            {          
                //falg用于跳出函数
                int flag = 0;
                 //检查是否具备这个key,并且检查value是否重复             
                 foreach (KeyValuePair<K,V> item in this)            
                 {                
                     if (item.Key.ToString() == key.ToString() && item.Value.ToString() == value.ToString())                
                     {
                         flag=1;           
                     }
                    
                    
                 }
                 if (flag == 1)
                     return;  //跳出函数
                 //否则就加入           
                 base.Add(key, value);
                
                            
             }    
        }   
        class Program    
        {        
            static void Main(string[] args)        
            {            
                MySortList<string, string> m = new MySortList<string, string>();           
                m.Add("a", "a");            
                m.Add("b", "b");
                m.Add("a", "c");
                m.Add("d", "c");
               m.Add("a", "a");    //此行没有加入
    
                Console.ReadKey();
            }    
        }
    }


    这样键可以重复,值可以重复,但是键值不可以重复

     

    参考:http://social.msdn.microsoft.com/Forums/zh-CN/2212/thread/3a24ba81-3ba0-4727-ba93-1b319a947feb

    展开全文
  • 总结:除了set不可重复,其余均可重复;map中key不可重复,value可重复             除了list和tree有序,其余均无序 转载:...
  • 例如:存放int是转换成Integer对象集合存放是多个对象引用,对象本身还是放在堆内存中集合可以存放不同类型,不限数量数据类型2 HashSet(无序,不可重复)HashSet是set接口典型实现,大多数时候使用Set集合时...
  • List是有序且重复的,Set是无序不重复的。这里说的顺序有两个概念,一是按添加的顺序排列,二是按自然顺序a-z排列。Set并不是无序的,传统说的Set...不保证元素添加的顺序,不保证元素自然的顺序,不可重复:HashSet...
  • Java 中,提供了很多常用的数据结构。比如,Map、List、Set 等。但是,在很多时候,我们可能需要统计某个数据出现的次数,这时往往我们的...这就是本文所要说的,一种兼容Set的无序,List可重复的数据结构:Multis...
  • 笔者需要将数据库中的某个表的数据拿出来处理例如楼层和建筑表,有外键限制一开始是使用List保存的,但实际操作中发现,从表中取出来楼层数据中的建筑有些是重复的List接口实现的存储是有序可重复的,Set接口是无序...
  • java中的Set,里面存储的元素应该是不可重复的,但是我有一个60多w行的文本文件,已知里面有一些行是重复的,但是我将这些行全部存到Set时,竟然将重复的行也存进去了,看了Set源码也没找出问题,大牛们帮忙出来解答...
  • List接口实现的存储是有序可重复的,Set接口是无序重复的,能用下标定位数据 结合他们之间的优缺点和数据量,在考虑性能的情况下,笔者写了有序重复的集合 总体是基于LinkedList实现的,重写其add
  • 在Collection的集合体系中主要需要使用到的List集合与Set集合,还有就是另外的有映射关系的接口MapList:有序的,可重复的集合,使用该接口的实现类来添加元素的时候存储的都是按照添加顺序一个一个的一次添加到最后...
  • List集合(存放有序可重复队列)

    千次阅读 2019-10-06 15:30:17
    //list集合是有序的可重复的 @Test public void listTest1(){ List list =new ArrayList(); //指定索引直接添加在集合最后 list.add(11); list.add(" 111"); list.add('a'); //指定索引 list.add...
  • /**-------静下心来,没有什么做好不好-------- 去除ArrayList集合中的重复元素。...重复元素则放进去。 */ import java.util.*; class SingleElement { public static void main(String[]
  • 去除List的重复元素

    2019-11-13 20:41:44
    文章目录1....HashSet中允许重复元素,利用这一点解决List中存在重复元素问题,代码如下: public static void removeDuplicate(List list) { HashSet h = new HashSet(list); list.clear(...
  • 1.Redis概念Redis运行过程,也就是读写过程都是基于内存实现key/value存储,对比与...Redis支持存储value类型有很多,包括string(字符串)、list(链表)、set(集合)、zset(有序集合)和hash(哈希类型);2.Windows...
  • 其中Set代表无序、不可重复的集合;List代表有序、重复的集合;而Map则代表有映射关系的集合,Java5又增加了Queue体系集合,代表一种队列集合实现。HashSet和TreeSet是Set的两个典型实现,到底如何选择HashSet和...
  • keys可重复的字典

    千次阅读 2013-03-19 10:17:45
    所以为了简单只好找个可重复的Dictionary-->SortedList:SortedList 对象包含用键/值对表示的项目。SortedList 对象可按照字符顺序或数字顺序自动地对项目进行排序。根据SortedList 对象排序的特性课巧妙的让它的key
  • 得到List重复的数据

    2014-07-01 17:00:48
    [code="java"]// set中存放的是不可重复的元素 HashSet set = new HashSet(); List repeatElements = new ArrayList(); for (int m=0;m
  • 分析:可以用List集合存储所有想要随机数,随机生成一个0~list.size()范围数,从集合中取出,然后移除,该数也可以重新回答集合中。代码如下:package com.mfnote.util;import java.util.ArrayList;import ...
  • 方法一: 利用HashSet不可重复的特性先将List中不重复的数据添加到HashSet中,然后再重新给List复制 List<Map> list = dataService.getStrainItem(userId); HashSet h = new HashSet(list); list.clear();...
  • List集合去重复

    2016-06-16 14:42:09
    集合去重的几种方式: 第一种: public List getRepeatContains... // 存放不可重复的值,HashSet中是不允许存放重复的值的 HashSet set = new HashSet(); // 最终要返回的去重后的数据集合 List repeatElements
  • 线程安全,效率高 LinkedList特有功能: A:添加功能 public void addFirst(Object e) public void addLast(Object e) B:获取功能 public Object getFirst() public Obejct ...
  • Java中list去重(用set元素不重复性)

    万次阅读 2018-03-12 23:08:54
     在网上找了几种方法利用HashSet里面元素不可重复利用list里面contains方法比较是否存在去重首页我试验了第一种方法public static void main(String args[]){ ArrayList&lt;Integer&gt; arra...
  • 一丶代码 def buha(items,key=None): seen = set() ... {'x': 1, 'y': 4}, {'x': 2, 'y': 3}, {'x': 2, 'y': 3}, {'x': 10, 'y': 15} ] print(l) print(list(buha(l, key=lambda a : (a['x'],a['y'])))) 二丶运行结果
  • java map的key可以重复吗如果重复添加的话,hashmap会自动覆盖key一样的数据,保证一个key对应一个value 也就是说...map的key就相当于list的索引,是可以重复的, value当然没有限制,怎么着都行 你可以说说你现在...
  • 由于list不能在遍历时候进行删除,因为迭代器内部会维护一些索引位置相关数据,要求在迭代过程中,容器不能发生结构性变化,否则这些索引位置就失效了。... * 利用set集合元素不可重复性,删除
  • 说明:因为每次都是List queryXXXinfo 没有使用过set接受 前提:使用是oracle数据库 测试set接受 补充小知识点: -- oracle查询建表语句模板 select dbms_metadata.get_ddl('TABLE','TABLE_NAME') from dual; -- ...
  • list集合是可重复的元素集合; 可以使用set和list集合并用来实现:public class listDemo{ public static void main(String[] args) { List list=new ArrayList(); list.add("b"); list.add("a"); list.a
  • 首先list和set的一大区别就是set不可包含重复的元素,这样就可以利用这一特性自动筛选掉重复的数据。 利用set去重是比较便捷的方法,但是要注意hashset是无序且唯一的,会导致新生成的集合顺序发生改变。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,158
精华内容 2,463
关键字:

不可重复的list