TreeSet是以自然顺序存的数据,例如 Set<Student> students=new TreeSet(); students.add(new Student("111")); students.add(new Student("333")); students.add(new Student("222")); for (Student student : students) { System.out.println(stude…
代码: 1 import java.util.*; 2 3 /** 4 * 学习自定义排序:继承Comparable接口,重写compareTo方法(排序规则). 5 * TreeMap容器的Key是自动排序的,Key为自定义类时,必须重写排序规则. 6 * Iterator迭代器遍历Map容器 7 */ 8 public class DiySort { 9 10 /** 11 * 测试 12 * @param args 13 */ 14 public static void main(Stri…
public class TreeMapTest { public static void main(String[] args) { Map<Student,Integer> students = new TreeMap<>(); students.put(new Student("11"),1); students.put(new Student("11"),1); System.out.println(students.size());…
>要实现自然排序,对象集合必须实现Comparable接口,并重写compareTo()方法 >一般需求中描述的是"主要条件",如:按姓名长度排序.  需注意次要条件 如:长度相同时,姓名内容,年龄等条件是否相等,这决定着是否存入TreeSet集合.   package cn.itcast.day21.treeset; /* * 要实现自然排序,就一定要实现Comparable接口,并重写compareTo()方法 * * 若不实现Comparable接口,而把对象往Tre…
/*TreeSet * treeSet存入数据后自动调用元素的compareTo(Object obj) 方法,自动对数据进行排序 * 所以输出的数据是经过排序的数据 * 注:compareTo方法返回值有:负数,零,正数.分别表示小于,等于,大于 * 对于存入自定义的对象元素,要重写元素的compareTo(Object obj)方法 * 元素定义时,需要实现Comparable接口 * */ import java.util.Iterator; import java.util.TreeSe…
推荐使用第二种方式,编写比较器可以使数据类的程序耦合度降低,同时比较器也可以重复利用! 第一种方式:数据类实现Comparable接口,实现其中的compareTo方法 创建对象时,使用TreeSet的默认构造函数! SortedSet users = new TreeSet(); class User implements Comparable{ //String name; int age; User(int age){ this.age = age; } public String toS…
我们都知道,要对自建对象按照一定规则进行排序的话,要求自建对象实现Comparable接口,并重写compareTo() 方法,但compareTo() 方法的释义却不是那么容易搞清楚,下面举例进行阐述: 声明一个Student类(成员变量id,name)实现Comparable接口,然后重写compareTo()方法, public class Student implements Comparable<Student>{ private int id; private String nam…
[自然排序] package com.hxl; public class Student implements Comparable<Student> { private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getNa…
在使用list集合的时候,什么也不用. 原因:list允许存储重复的元素. 在使用set集合的时候,要重写,equals()方法 和 hashCode() 方法. 愿意:set集合 不允许存放相同的元素,而默认比较的是两个 对象地址的值,这样,两个对象恒不等.所以 我们需要重写equals()方法,当再次存入的时候用以判定两个对象到底是不是相等.如果两个对象相等了,那么两个 对象必然应该用有相同的hash值,所以在重写equals() 方法的同时,也要重写hashCode()方法. 如果要使用C…
默认的排序方法: 让类继承Comparable接口,重写compareTo方法. 示例代码: package com.imooc.collection; import java.util.HashSet; import java.util.Objects; import java.util.Set; /** * 学生类 * Set中的元素是唯一的,不会重复,但是没有顺序. */ public class Student implements Comparable<Student>{ priva…