我需要将得到一个没有重复数据的LIst。
先写了一个关于set值的方法。
private Set getList(Set stringList,String s) {
stringList.add(s);
return stringList;
}
然后在程序中我需要的地方调用上面的方法
Set myList =new HashSet();
String s1= “ aa‘;
String s2= “ bb‘;
String s3= “ cc‘;
String s4= “ dd‘;
getList(myList,s1);
getList(myList,s2);
getList(myList,s3);
getList(myList,s4);
List myNeedList = new ArrayList(myList);
myNeedList 就是我需要的List集合,我上面的程序有没有什么问题?
求大神指点,有金币相送。
如有问题 敬请详细描述及解决方法。
直接这样就行了,上面的图片是代码及输出结果,其中s2和s4是重复的,但是输出的结果中没有重复值
public static void main(String[] args) {
Set myList =new HashSet();
String s1= "aa";
String s2= "bb";
String s3= "cc";
String s4= "bb";
myList.add(s1);
myList.add(s2);
myList.add(s3);
myList.add(s4);
List myNeedList = new ArrayList(myList);
System.out.println(myNeedList);
}
需要向一个List中add 值,然后将List中的重复数据去除掉。
哪种方法比较好? 简单点的?
list有个contains(Object obj)方法,就是用来判断集合中是否存在obj是否被包含在集合中
楼主还不明白数据内容与对象地址的区别!
两个数据完全一样的对象,内存地址有可能不同,当内存地址不同的时候,contains方法会认为你要放进去的对象和已经存在的不同,即使你list中已经存在数据相同的对象了
如果一定要数据内容不重复,只能写个循环遍历下list,如果有,则不做任何操作,如果没有,则将数据加入,不要担心性能问题,现在的计算机,这种小循环完全不影响性能
不是关键啊,我项目里的内容不变透露,那个是随便起的名字而已。
我的list 需要N多次塞值,
那么我需要N-1次进行遍历?
这样也太麻烦了。
那你上面的程序是可以的,不过你可以考虑把最后数据集保持成set类型,中间处理这个myNeedList最好也支持set类型,到最终结果再进行相应转换。不行就按上面做吧
就是需要向一个List中add 值,然后将List中的重复数据去除掉。
哪种方法比较好?