读书人

Java中怎么去除List中的重复的值

发布时间: 2013-08-06 16:47:25 作者: rapoo

Java中如何去除List中的重复的值?
AAAA
AAAA
AAAA
BBBB
BBBB
CCCC
CCCC
CCCC
CCCC
遍历得到这些数据 不确定有多少种 也可能有DDDDD,不确定有每种数据有多少条 ,我想得到每种数据的单个 如AAAA BBBB CCCC,去除每种数据重复的部分!如何实现啊。求大概代码!!!!
[解决办法]
方法一:循环元素删除
// 删除ArrayList中重复元素

public   static   void  removeDuplicate(List list)   { 
for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {
for ( int j = list.size() - 1 ; j > i; j -- ) {
if (list.get(j).equals(list.get(i))) {
list.remove(j);
}
}
}
System.out.println(list);
}

方法二:通过HashSet剔除
// 删除ArrayList中重复元素
 public   static   void  removeDuplicate(List list)   { 
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
System.out.println(list);
}

方法三: 删除ArrayList中重复元素,保持顺序
// 删除ArrayList中重复元素,保持顺序
public   static   void  removeDuplicateWithOrder(List list)   { 
Set set = new HashSet();
List newList = new ArrayList();
for (Iterator iter = list.iterator(); iter.hasNext();) {
Object element = iter.next();


if (set.add(element))
newList.add(element);
}
list.clear();
list.addAll(newList);
System.out.println( " remove duplicate " + list);
}



参考与:http://xinqiqi123.iteye.com/blog/1148984
[解决办法]
可以定义一个方法进行去除

publi List<String> getNewList(List<String> li){
List<String> list = new ArrayList<String>();
for(int i=0; i<li.size(); i++){
String str = li.get(i); //获取传入集合对象的每一个元素
if(!list.contains(str)){ //查看新集合中是否有指定的元素,如果没有则加入
list.add(str);
}
}
return list; //返回集合
}

public class Test{
public static void main(String[] args){
ArrayList<String> arr = new ArrayList<String>();
arr.add("aaa");
arr.add("bbb");
arr.add("aaa");
arr.add("ccc");
arr = getNewList(arr); //方法去重
System.out.println(arr);
}
}

[解决办法]
ArrayList<String> result = new ArrayList<String>();

for(String s: sources){
if(Collections.frequency(reslut, s) < 1) result.add(s);
}

[解决办法]
List list = new ArrayList();

list.add("AAAA");
list.add("AAAA");
list.add("BBBB");
list.add("CCCC");
list.add("DDDD");
list.add("AAAA");
list.add("BBBB");

List list1 = new ArrayList();

for(int z=0;z<list.size();z++)
{
if(!list1.contains(list.get(z))){
list1.add(list.get(z));
}
}

读书人网 >J2SE开发

热点推荐