如何去除List集合中重复的元素

如何去除List集合中重复的元素,第1张

List去重是通过将List集合转换成Set。Set是最简单的一种集合,不保存重复的元素,集合中的对象不按特定的方式排序,并且没有重复对象。

新建一个Test类,如下所示:

publicclassTest{

@SuppressWarnings({"unchecked","rawtypes"})

publicstaticvoidmain(String[]args){

Listlist=newArrayList();

listadd(1);

listadd(2);

listadd(3);

listadd(4);

listadd(1);

Systemoutprintln(list);

//创建一个set集合

Setset=newHashSet();

//创建一个新的list集合

ListnewList=newArrayList();

setaddAll(list);

newListaddAll(set);

Systemoutprintln(newList);}

扩展资料

参考list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,list不支持对元素的任意存取。

list中提供的成员函数与vector类似,不过list提供对表首元素的 *** 作push_front、pop_front,这是vector不具备的。

和vector另一点不同的是,list的迭代器不会存在失效的情况,不像vector会保留备份空间,在超过容量额度时重新全部分配内存,导致迭代器失效;list没有备份空间的概念,出入一个元素就申请一个元素的空间,所以它的迭代器不会失效。

参考资料来源:百度百科-list

遍历集合,查找重复数据,将其中重复数据信息存放到Hashtable或Dictionary集合中。实现方法举例如下。

例查找List<int> 集合中重复的数据项,将数据项重复信息存放到Dictionary集合,最后输出结果。

using System;

using SystemCollectionsGeneric;

namespace ConsoleApplication1

{

    /// <summary>

    /// RepeatInfo用来描述重复项

    /// </summary>

    class RepeatInfo

    {

        // 值

        public int Value { get; set; }

        // 重复次数

        public int RepeatNum { get; set; }

    }

    class Program

    {

        static void Main(string[] args)

        {

            // 整型列表集合。集合中有重复值

            int[] a = { 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 4, 3, 1, 2, 2, 1 };

            List<int> list =new List<int>(a);

            // 显示整型列表集合

            foreach (int v in list)

            {

                ConsoleWrite("{0} ", v);

            }

            ConsoleWriteLine();

            // result集合存放扫描结果

            Dictionary<int, RepeatInfo> result = 

                    new Dictionary<int, RepeatInfo>();

                    

            // 遍历整型列表集合,查找其中的重复项

            foreach (int v in list)

            {

                if (resultContainsKey(v))

                {

                    result[v]RepeatNum += 1;

                }

                else

                {

                    RepeatInfo item = 

                        new RepeatInfo() { Value = v, RepeatNum = 1 };

                    resultAdd(v, item);

                }

            }

            

            // 获取并打印出重复的数据

            ConsoleWriteLine("集合中重复的数据:");

            foreach (RepeatInfo info in resultValues)

            {

                if (infoRepeatNum > 1)

                {

                    ConsoleWriteLine("  数据项{0} 重复次数{1}", 

                        infoValue, infoRepeatNum);

                }

            }

        }

    }

}

以上就是关于如何去除List集合中重复的元素全部的内容,包括:如何去除List集合中重复的元素、c# 怎么获取一个集合中重复的数据、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9468592.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存