
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# 怎么获取一个集合中重复的数据、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)