Student.java package com.sxt.set5; public class Student{ private String name; private int age; private double salary; public Student(String name, int age, double salary) { super(); this.name = name; this.age = age; this.salary = salary; } public Stud…
Student.java package com.sxt.set3; /* * TreeSet:有序 * implements Comparable<Student> * 如果用内部比较器TreeSet必须是实现Comparable接口来实现有序 否则会出现报错:com.sxt.set4.Student cannot be cast to java.lang.Comparable * 使用泛型是为了在重写compareTo()方式时,object不用强制转换类型 */ //内部比较器:在类内重…
1:Comparable a:基本数据类型封装类都继承了Comparable接口 b:TreeSet 和TreeMap集合默认是按照自然顺序排序的 c:继承类中实现compareTo()方法,在类内部实现的,所以称为内部比较器 2:Comparator 配合Collections工具类的sort(List list, Comparator c)方法使用,其中的compare方法是在类外部实现的,所以称为外部比较器…
package cn.itcast.day21.treeset2; import java.util.Comparator; import java.util.TreeSet; /* * TreeSet 按照自定义对象Student的姓名长度 比较器排序 * * 自然排序or比较器排序取决于,TreeSet的构造方法 * 无参构造:自然排序 * 有参构造: 比较器排序 * * TreeSet集合保证元素排序和唯一性的原理 * 唯一性:根据比较的返回是否是0来决定 * 排序: * A:自然排序(元…
参考链接: HOW2J.CN 前言 对于JAVA集合,都能够用集合的工具类Collections 提供的方法: Collections.sort(List list) Collections.sort(List list, Comparator c) 来进行排序.很多时候,集合中存储的不是基本的数据类型,而是我们自己定义的类的对象,我们希望用自己的排序方式对集合中的元素进行排序,我们可以通过让类实现Comparable接口来自定义排序方式,也可以采用创建匿名内部类的做法进行自定义排序. 实现Co…
Comparable和Comparator  Comparable 简介 Comparable 是排序接口.若一个类实现了Comparable接口,就意味着"该类支持排序".  即然实现Comparable接口的类支持排序,假设现在存在"实现Comparable接口的类的对象的List列表(或数组)",则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序.此外,"实现Comparable接口的类的对象&…
本文主要是介绍一下java集合中的比较重要的Set接口下的可实现类TreeSet TreeSet类,底层用二叉树的数据结构 * 集合中以有序的方式插入和抽取元素. * 添加到TreeSet中的元素必须是可以排序的 * 保证数据的唯一性: * 第一种:让添加的类自身具有可比较性, * 实现Comparable接口中的CompareTo()方法 package com.tercher.demo; import java.util.Iterator; import java.util.TreeSet;…
Comparable与Comparator实际上是TreeSet集合的两种实现方式,用来实现对象的排序.下边介绍一下两种比较器的使用方法和区别. Comparable称为元素的自然顺序,或者叫做默认顺序. Comparator称为元素定制排序. 下边我们使用Student类来比较两个排序方法,类中有年龄和姓名两个属性. (1)Comparable(让元素自身具备比较性,元素需要实现Comparable接口,覆盖compareTo方法) ※如果我们希望按照学生年龄排序,当学生年龄相等时按照姓名排序…
1. Collections用法 Collections: 集合的工具类public static <T> void sort(List<T> list) 排序,升序public static <T> int binarySearch(List<?> list,T key) 二分查找,不存在返回负数,只能针对升序集合public static <T> T max(Collection<?> coll) 最大值public static…
上一篇很水的介绍完了TreeMap,这一篇来看看更水的TreeSet. 本文将从以下几个角度进行展开: 1.TreeSet简介和使用栗子 2.TreeSet源码分析 本篇大约需食用10分钟,各位看官请随意享用. 一.TreeSet简介 TreeSet是Set家族中的又一名懒将,跟其他两位一样,与对应的Map关系密不可分 我们先来回顾一下其他两个Set类,HashSet借助于HashMap拥有快速元素插入和查找的特性,LinkedHashSet借助于LinkedHashMap拥有快速插入查找以及使…