1.去重复字符串
public static void main(String args[]){
List<String> list=new ArrayList<String>();
list.add("abc");
list.add("ddd");
list.add("ddd");
System.out.println(">>>>>>>>>>>>去重复之前:>>>>>>>>>>>>>>");
for( Iterator<String> it = list.iterator(); it.hasNext(); )
{
System.out.println("value="+it.next().toString());
}
System.out.println(">>>>>>>>>>>>去重复之后:>>>>>>>>>>>>>>");
Set<String> set=new HashSet<String>();
set.addAll(list);
for( Iterator<String> it = set.iterator(); it.hasNext(); )
{
System.out.println("value="+it.next().toString());
}
}
>>>>>>>>>>>>去重复之前:>>>>>>>>>>>>>>
value=abc
value=ddd
value=ddd
>>>>>>>>>>>>去重复之后:>>>>>>>>>>>>>>
value=abc
value=ddd
2.如果是对象 需要重写对象的equals hashCode 函数
package test;
public class A {
public String id;
public String name;
public A(String id,String name){
this.id=id;
this.name=name;
}
public boolean equals(Object o){
System.out.println("compare....");
if(o.getClass()!=getClass())
return false;
else{
A a=(A)o;
if(id.equals(a.id))
return true;
else
return false;
}
}
public int hashCode() {
return id.hashCode();
}
public String toString(){
return "[id:"+id+",name:"+name+"]";
}
}
public static void main(String args[]){
List<A> list=new ArrayList<A>();
list.add(new A("1","chq"));
list.add(new A("1","chq"));
list.add(new A("2","dddd"));
Set<A> set=new HashSet<A>();
set.addAll(list);
System.out.println("size="+ set.size() );
for( Iterator<A> it = set.iterator(); it.hasNext(); )
{
System.out.println("value="+it.next().toString());
}
}
compare....
size=2
value=[id:1,name:chq]
value=[id:2,name:dddd]