对于String类型的list:
package com.yang.set;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Test {
public static void main(String[] args) {
List<String> userList = new ArrayList<String>();
userList.add("y");
userList.add("y");
userList.add("b");
for (int i = 0; i < userList.size(); i++) {
System.out.println("list1---" + userList.get(i).toString());
}
System.out.println("-----------------------------");
Set<String> hashSet = new HashSet<String>(userList);
userList.clear();
userList.addAll(hashSet);
for (String user : userList) {
System.out.println("list2---" + user.toString());
}
System.out.println("-----------------------------");
for (String user : hashSet) {
System.out.println("set1---" + user.toString());
}
}
}
对于对象:
对象假设是很简单的User,只包含两个字段内容:name,age。
首先要复写两个方法:equals,hashCode
package com.yang.set;
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public User(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "name=" + name + " age=" + age;
}
@Override
public boolean equals(Object obj) {
User s = (User) obj;
return name.equals(s.name) && age == s.age;
}
@Override
public int hashCode() {
String in = age + name;
return in.hashCode();
}
}
Test测试类:
package com.yang.set;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Test {
public static void main(String[] args) {
List<User> userList = new ArrayList<User>();
userList.add(new User("y", 1));
userList.add(new User("y", 1));
userList.add(new User("yb", 2));
for (int i = 0; i < userList.size(); i++) {
System.out.println("list1---" + userList.get(i).toString());
}
System.out.println("-----------------------------------------");
Set<User> hashSet = new HashSet<User>(userList);
userList.clear();
userList.addAll(hashSet);
for (User user : userList) {
System.out.println("list---" + user.toString());
}
System.out.println("-----------------------------------------");
for (User user : hashSet) {
System.out.println("set---" + user.toString());
}
}
}