实现Comparator方式排序一TreeSet集合
来源:互联网 发布:centos nginx php 编辑:程序博客网 时间:2024/05/01 04:42
TreeSet的第一种排序方式,让元素自身具备比较性。
元素需要实现comparable接口,覆写compareTo方法。
TressSer第二种排序方式
当元素自身不具备比较性时,或者具备的比较性不是所需要的。
这时就需要让集合自身具备比较性,就定义了比较器。
定义一个类实现comparator 覆写compare方法。
TreeSet(Comparator<? super E> comparator)
构造一个新的空 TreeSet,它根据指定比较器进行排序
使用Comparator 的compare方法比较,
compare(T o1, T o2)
o1是要添加的元素, o2是集合中现有的元素。
元素需要实现comparable接口,覆写compareTo方法。
TressSer第二种排序方式
当元素自身不具备比较性时,或者具备的比较性不是所需要的。
这时就需要让集合自身具备比较性,就定义了比较器。
定义一个类实现comparator 覆写compare方法。
TreeSet(Comparator<? super E> comparator)
构造一个新的空 TreeSet,它根据指定比较器进行排序
使用Comparator 的compare方法比较,
compare(T o1, T o2)
o1是要添加的元素, o2是集合中现有的元素。
根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。
如果两种方式都具备时,以比较器(comparator)为主
需求:
用姓名排序,姓名相同再比较年龄排序
import java.util.*;/**/class TreeSetDemo { public static void main(String [] args) { TreeSet ts=new TreeSet(new Mycompare()); ts.add(new Student("lisi09",40)); ts.add(new Student("lisi02",22)); ts.add(new Student("lisi007",20)); ts.add(new Student("lisi09",30)); Iterator it=ts.iterator(); while(it.hasNext()) { Student s=(Student)it.next(); System.out.println(s.getName()+"...."+s.getAge()); } } } class Mycompare implements Comparator{/*Mycompare上帝是Object已经继承了equals不用再覆盖了*/public int compare(Object o1,Object o2){Student s1=(Student)o1;Student s2=(Student)o2; int a=s1.getName().compareTo(s2.getName());//比较字符串,主要条件相同比较次要条件 if(a==0)return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge())); return a;}} class Student implements Comparable { private String name; private int age; Student(String name ,int age) { this.name=name; this.age=age; } public int compareTo(Object obj) { if(!(obj instanceof Student)) throw new RuntimeException("不属于stduent类"); Student s=(Student)obj; if(this.age > s.age) return 1; if(this.age ==s.age) { return this.name.compareTo(s.getName()); } return -1; } public String getName() { return name; } public int getAge() { return age; } }
0 0
- 实现Comparator方式排序一TreeSet集合
- TreeSet集合排序方式二:定制排序Comparator
- TreeSet集合排序两种实现方式Comparable和Comparator比较
- TreeSet集合排序两种实现方式Comparable和Comparator比较
- TreeSet集合排序两种实现方式Comparable和Comparator比较
- TreeSet的排序两种实现方式Comparator和Comparable
- TreeSet集合排序方式一:自然排序Comparable
- 实现Comparator方式排序
- 集合框架——Set(TreeSet实现Comparator方法排序)
- TreeSet,Comparator集合应用
- 集合框架-二叉树-实现Comparator方式排序
- TreeSet实现排序(一)
- TreeSet排序Comparator
- TreeSet结合Comparator排序
- 黑马程序员--07.集合框架--08.【TreeSet的Comparator排序】【TreeSet总结】
- TreeSet集合两种排序方式
- TreeSet 的排序非自然数需要实现Comparator接口
- 黑马程序员_day15 TreeSet,二叉树,实现Comparator方式排序,泛型,泛型接口,泛型限定)
- 游戏体验感受
- A Survey of Appearance Models in Visual Object Tracking 阅读笔记(二)
- 移动路线
- 4种方法让SpringMVC接收多个对象
- python的库函数安装
- 实现Comparator方式排序一TreeSet集合
- 关于HttpClientPost的具体用法
- 1002. 写出这个数 (20)
- unix冲洗的概念
- windows中安装配置maven
- IMWEB小白DAY2-写诗
- LeetCode
- 党建基本知识
- (转)Android PopupWindow详解