很急 java中有没有去掉重复又是有序的集合或数据 最好有列子 除了set
3个回答
展开全部
Object object = new Object();
List list =new ArrayList();
list.add(object);
list.add(object);
Set set = new HashSet();
set.addAll(list);
List list2 =new ArrayList();
list2.addAll(set);
System.out.println(list2.size());
具体思路就是 把list 加到HashSet中 ,我们知道 Set是不能重复的...
并且注意
你如果有一个对象:
并且有2个字段
你有可能认为2个字段相等的话,这个对象就是重复的...这样的话,你应该去实现equest方法和hashCode方法里面去实现关于这2个字段判断...这个是hash表的特点
如果想要排序list,那么你就要重新写一个排序类去实现Comparator接口
//一个POJO例子
class User {
String name;
String age;
public User(String name,String age){
this.name=name;
this.age=age;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//具体的比较类,实现Comparator接口
import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
public class ComparatorUser implements Comparator{
public int compare(Object arg0, Object arg1) {
User user0=(User)arg0;
User user1=(User)arg1;
//首先比较年龄,如果年龄相同,则比较名字
int flag=user0.getAge().compareTo(user1.getAge());
if(flag==0){
return user0.getName().compareTo(user1.getName());
}else{
return flag;
}
}
}
//测试类
public class SortTest {
public static void main(String[] args){
List userlist=new ArrayList();
userlist.add(new User("dd","4"));
userlist.add(new User("aa","1"));
userlist.add(new User("ee","5"));
userlist.add(new User("bb","2"));
userlist.add(new User("ff","5"));
userlist.add(new User("cc","3"));
userlist.add(new User("gg","6"));
ComparatorUser comparator=new ComparatorUser();
Collections.sort(userlist, comparator);
for (int i=0;i<userlist.size();i++){
User user_temp=(User)userlist.get(i);
System.out.println(user_temp.getAge()+","+user_temp.getName());
}
}
}
上面的这个例子是从网上copy下来的...OK..就这些..
List list =new ArrayList();
list.add(object);
list.add(object);
Set set = new HashSet();
set.addAll(list);
List list2 =new ArrayList();
list2.addAll(set);
System.out.println(list2.size());
具体思路就是 把list 加到HashSet中 ,我们知道 Set是不能重复的...
并且注意
你如果有一个对象:
并且有2个字段
你有可能认为2个字段相等的话,这个对象就是重复的...这样的话,你应该去实现equest方法和hashCode方法里面去实现关于这2个字段判断...这个是hash表的特点
如果想要排序list,那么你就要重新写一个排序类去实现Comparator接口
//一个POJO例子
class User {
String name;
String age;
public User(String name,String age){
this.name=name;
this.age=age;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//具体的比较类,实现Comparator接口
import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
public class ComparatorUser implements Comparator{
public int compare(Object arg0, Object arg1) {
User user0=(User)arg0;
User user1=(User)arg1;
//首先比较年龄,如果年龄相同,则比较名字
int flag=user0.getAge().compareTo(user1.getAge());
if(flag==0){
return user0.getName().compareTo(user1.getName());
}else{
return flag;
}
}
}
//测试类
public class SortTest {
public static void main(String[] args){
List userlist=new ArrayList();
userlist.add(new User("dd","4"));
userlist.add(new User("aa","1"));
userlist.add(new User("ee","5"));
userlist.add(new User("bb","2"));
userlist.add(new User("ff","5"));
userlist.add(new User("cc","3"));
userlist.add(new User("gg","6"));
ComparatorUser comparator=new ComparatorUser();
Collections.sort(userlist, comparator);
for (int i=0;i<userlist.size();i++){
User user_temp=(User)userlist.get(i);
System.out.println(user_temp.getAge()+","+user_temp.getName());
}
}
}
上面的这个例子是从网上copy下来的...OK..就这些..
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询