List集合排重/排序
来源:互联网 发布:爱因斯坦名言知乎 编辑:程序博客网 时间:2024/05/16 18:24
1.集合排重HashSet;!list.contains(list.get(i))
2.集合排序使用Collections工具类,实现了Comparable接口的类传入里面调用一下Collections.sort() 方法
java中Collections.sort() 排序函数的用法- http://www.blogjava.net/landor2004/articles/sort.html
JAVA集合中常见的两种去重的两种方式- http://blog.csdn.net/code_my_dream/article/details/72818700> 排重
一、相对简单的做法,回需要额外的存储空间:1、重写Bean的hashcode和equals两个方法
2、然后new HashSet(List<Bean>),这样HashSet中的元素就是去重的了
二、使用双重循环,使用前一个元素与后面的元素逐个比较,如果相同,则把后面相同的元素删除
import java.util.HashSet;
import java.util.Iterator;
public class Bean{
public static void main(String[] args){
String userId = "001";
String ip = "192.168.1.1";
String roomId = "ROOM-001";
Bean bean1_1 = new Bean(userId,"192.168.0.1","ROOM-011","uuid","name");
Bean bean1_2 = new Bean(userId,"192.168.0.2","ROOM-012","uuid","name");
Bean bean2_1 = new Bean("id21",ip,"ROOM-021","uuid","name");
Bean bean2_2 = new Bean("id22",ip,"ROOM-022","uuid","name");
Bean bean3_1 = new Bean("id31","192.168.0.3",roomId,"uuid","name");
Bean bean3_2 = new Bean("id32","192.168.0.4",roomId,"uuid","name");
HashSet<Bean> beans = new HashSet<>();
Bean.setCondition(USERID);
beans.add(bean1_1);
beans.add(bean1_2);
beans.add(bean2_1);
beans.add(bean2_2);
beans.add(bean3_1);
beans.add(bean3_2);
beans = printBeans(beans,IP);
beans = printBeans(beans,ROOMID);
printBeans(beans,ROOMID);
}
private static HashSet<Bean> printBeans(HashSet<Bean> beans,int condition){
Bean.setCondition(condition);
HashSet<Bean> result = new HashSet<>();
System.out.println("Beans size: " + beans.size());
System.out.println("----------contain-------------");
Iterator<Bean> iterator = beans.iterator();
Bean bean = null;
for(;iterator.hasNext();){
bean = iterator.next();
result.add(bean);
System.out.println(bean);
}
System.out.println("------------------------------");
return result;
}
public Bean(String userId,String ip,String roomId,String uuid,String name){
this.userId = userId;
this.ip = ip;
this.roomId = roomId;
this.uuid = uuid;
this.name = name;
}
@Override
public String toString(){
return String.format("Bean[userId:%s,ip:%s,roomId:%s,uuid:%s,name:%s]",userId,ip,roomId,uuid,name);
}
public static void setCondition(int value){
condition = value;
}
@Override
public int hashCode(){
switch(condition){
case USERID :
return userId.hashCode();
case IP :
return ip.hashCode();
case ROOMID :
return roomId.hashCode();
default :
return 0;
}
}
@Override
public boolean equals(Object obj){
if(!(obj instanceof Bean)){
return false;
}
Bean bean = (Bean)obj;
switch(condition){
case USERID :
return userId.equals(bean.userId);
case IP:
return ip.equals(bean.ip);
case ROOMID:
return roomId.equals(bean.roomId);
default :
return true;
}
}
private String userId = null;
private String ip = null;
private String roomId = null;
private String uuid = null;
private String name = null;
/*----------Constant-----------*/
public static final int USERID = 1;
public static final int IP = 2;
public static final int ROOMID = 3;
public static int condition = 0;
}
阅读全文
0 0
- List集合排重/排序
- 集合 List<T> 排重方法 Distinct()
- list 对象排重
- list集合去重
- List集合去重
- List集合去重
- list集合去重
- dos 排序与排重
- 对内容排重排序
- list排序,list去重
- list去重排序
- List排序去重
- list数据重排序
- List去重排序
- List集合内排序
- List集合排序
- list 集合对象 排序
- list集合排序
- hdu5326 Work(Jnu第一次训练G)
- python 判断文件和文件夹是否存在的方法
- 迷宫系列(一)栈、队列、迷宫的表示和文件操作
- R语言数据类型
- 88. Merge Sorted Array
- List集合排重/排序
- 剑指offer 编程题(3):链表倒序输出到vector
- ifream高度只适应解决方案
- 集算器wins及linux启动多节点机的方法
- 多线程
- ORACLE ERP各模块会计分录
- 简单的五子棋操作用两种方法实现
- 高可用NAS集群技术
- 高并发风控技术解密(下)