浅谈TreeSet中的两种排序方式
更新时间:2017年05月03日 10:34:12 投稿:jingxian
下面小编就为大家带来一篇浅谈TreeSet中的两种排序方式。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
直接上代码:
package exercise1;
public class Person implements Comparable{
private int id;
private String name;
public Person(int id, String name) {
super();
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return "Person [id=" + id + ", name=" + name + "]";
}
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (id != other.id)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
public int compareTo(Object o) {
if(o instanceof Person){
Person p=(Person)o;
return this.name.compareTo(p.name);
}
return 0;
}
}
package exercise1;
//TreeSet下的自然排序和定制排序
import java.util.Comparator;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
import java.util.function.Function;
import java.util.function.ToDoubleFunction;
import java.util.function.ToIntFunction;
import java.util.function.ToLongFunction;
import org.junit.Test;
//定制排序
public class DisOrder {
@Test
public void unNature(){
Comparator com=new Comparator() {
public int compare(Object o1, Object o2) {
if(o1 instanceof Person && o2 instanceof Person){
Person p1=(Person)o1;
Person p2=(Person)o2;
return p1.getName().compareTo(p2.getName());
}
return 0;
}
};
Set set=new TreeSet(com);
set.add(new Person(111,"MM"));
set.add(new Person(222,"DD"));
set.add(new Person(333,"GG"));
for(Object obj:set){
System.out.println(obj);
}
}
//自然排序
@Test
public void nature() {
Set set=new TreeSet();
set.add("aa");
set.add("bb");
set.add("ff");
set.add("zz");
for(Object obj:set){
System.out.println(obj);
}
}
}
以上这篇浅谈TreeSet中的两种排序方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
解决SpringBoot整合ElasticSearch遇到的连接问题
这篇文章主要介绍了解决SpringBoot整合ElasticSearch遇到的连接问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-08-08
深入学习java并发包ConcurrentHashMap源码
这篇文章主要介绍了深入学习java并发包ConcurrentHashMap源码,整个 ConcurrentHashMap 由一个个 Segment 组成,Segment 代表”部分“或”一段“的意思,所以很多地方都会将其描述为分段锁。,需要的朋友可以参考下2019-06-06
使用java web 在jsp文件及Class中连接MySQL和SQLserver 的驱动方法
这篇文章主要介绍了使用java web 在jsp文件及Class中连接MySQL和SQLserver的驱动方法的相关资料,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下2016-10-10
WebSocket整合SSM(Spring,Struts2,Maven)的实现示例
这篇文章主要介绍了WebSocket整合SSM(Spring,Struts2,Maven)的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-01-01


最新评论