栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

浅谈TreeSet中的两种排序方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

浅谈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中的两种排序方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/146417.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号