首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

请教怎么删除arrayList中的重复的值

2012-02-27 
请问如何删除arrayList中的重复的值?比如有一个arraylist里面有值1 , 1 , 1 , 2 , 3 , 2 ,请

请问如何删除arrayList中的重复的值?
比如有一个arraylist   里面有值   "1 ", "1 ", "1 ", "2 ", "3 ", "2 ",请问怎样去掉重复的,过滤后变成 "1 ", "2 ", "3 ",谢谢了

[解决办法]
用SET接口实现的集合,好像不会添加重复的值。
[解决办法]
放进一个set,去除重复,再取出来放进ArrayList
[解决办法]
如果是SET接口下面的类的话,那么就没有重复的值了,如果你一定要用ARAYLIST的话,我想在ARRAYLIST里面是不可能实现的,你可以在数据库里面进行过滤一下!
[解决办法]
出售以下资料、代码

1.JSP编程技巧百问集锦(100个问题;一个问题一段代码) 报价:30 RMB
2.Asp.Net编程技巧百问集锦(100个问题;一个问题一段代码) 报价:30 RMB
3.JavaScript编程技巧百问集锦(一个问题一段代码) 报价:20 RMB
4.在线书店系统 (jsp+javabean+servlet Web版 全套源码 安装即用) 报价:150 RMB
5.办公自动化系统(jsp+javabean+servlet Web版 全套源码 安装即用) 报价:300 RMB

需要者请联系:e_mail:fzlotuscn@yahoo.com.cn QQ:595563946


新年资料、系统程序代码大礼包:

1.JSP编程技巧百问集锦(100个问题;一个问题一段代码)
2.Asp.Net编程技巧百问集锦(100个问题;一个问题一段代码)
3.JavaScript编程技巧百问集锦(一个问题一段代码)
4.在线书店系统 (jsp+javabean+servlet Web版 全套源码 安装即用)
5.办公自动化系统(jsp+javabean+servlet Web版 全套源码 安装即用)

报价:350 RMB

需要者请联系:e_mail:fzlotuscn@yahoo.com.cn QQ:595563946
[解决办法]
//不知道行不行
public void trimArray(List list){
Iterator it = list.iterator();
HashSet set = new HashSet();
while(it.hasNext()){
Object obj = it.next();
if(set.contains(obj)) it.remove();
else set.add(obj);
}
}
[解决办法]
这个出售代码的真TMD恶心,不能每贴你都加个广告吧,晕菜
[解决办法]
出售代码的人确实恶心

都被封了好几个号都不知道悔改

我觉得应该把LIST里的值都放到一个SET里面

这样就能避免重复了

但是缺点是

取出来是无序的

也可以自己进行遍历比较

然后放到一个新的LIST里面
[解决办法]
public class DelChar {
public void delDuplicate(){
String tempStr[] = { "1 ", "2 ", "1 ", "2 ", "3 ", "2 "};
List tempList = new ArrayList();
List ResultList = new ArrayList();
for(int i=0;i <tempStr.length;i++){
tempList.add(tempStr[i]);
}
System.out.println(tempList);
for(int m=0;m <tempList.size();m++){
for(int n=m+1;n <tempList.size();){
if(tempList.get(m)==tempList.get(n)){
tempList.remove(n);
}
else{
n++;
}
}
}

System.out.println(tempList);

}
[解决办法]
对于这种arraylist只存放基本类型的话,很简单
public Collection trimArray(List list){
Iterator it = list.iterator();
Collection newColl = new ArrayList();
while(it.hasNext()){
Object obj = it.next();
if(!newColl.contains(obj)) {
newColl.add(obj);
}
}
return newColl;
}
另外,如果存放的是对象的话,那就得重写你的equals方法了。
------解决方案--------------------


killme2008(为了生态平衡,请保护蛤蟆) ( ) 信誉:96 Blog 2007-2-12 17:59:21 得分: 0



放进一个set,去除重复,再取出来放进ArrayList



----------------------------------

还是这个比较简单实惠,哈哈
[解决办法]
高手啊!
[解决办法]
package test;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

public class Test {

public void constructList(List oList){
Random random = new Random();
for(int i=0;i <10;i++){
oList.add(String.valueOf(random.nextInt(10)));
}
}

public void exchange(Collection c1,Collection c2){
Iterator it = c1.iterator();
while(it.hasNext()){
c2.add(it.next());
}
}

public void printList(Collection c){
Iterator it = c.iterator();
while(it.hasNext()){
System.out.print(it.next()+ " ");
}
}
public static void main(String arg[]){
Test test = new Test();
ArrayList oList = new ArrayList();
HashSet oSet = new HashSet();

test.constructList(oList);

System.out.println( "before exchange: ");
test.printList(oList);

test.exchange(oList,oSet);
oList.clear();
test.exchange(oSet,oList);

System.out.println();
System.out.println( "after exchange: ");
test.printList(oList);
}
}

[解决办法]

对于这种arraylist只存放基本类型的话,很简单
public Collection trimArray(List list){
Iterator it = list.iterator();
Collection newColl = new ArrayList();
while(it.hasNext()){
Object obj = it.next();
if(!newColl.contains(obj)) {
newColl.add(obj);
}
}
return newColl;
}
另外,如果存放的是对象的话,那就得重写你的equals方法了。

不错的思路。
[解决办法]
public ArrayList doRemove(ArrayList list){
//削除
HashSet set = new HashSet();
ArrayList array = new ArrayList();
for (int i = 0;i < list.size(); i ++){
if (set.add(list.get(i))){
array.add(list.get(i));
}
}
return array;
}
[解决办法]
同意楼上!

热点排行