Comparator接口代码实例

——- android培训、java培训、期待与您交流! ———-

set:元素是无序(存入和取出的顺序不一定一致),不可以重复 set集合的功能和Collection一样——||HashSet: 是如何保证元素的唯一性的呢? 是通过元素的两个方法,hashCode和equlas来完成。 如果元素的hashCode值相同,才会判断equlas是否为true。 如果元素的hashcode值不同,不会判断equlas方法。——|| TreeSet:可以对Set集合中的元素进行排序。排序的两种要素:集合和元素。 TreeSet存储自定义对象,在排序时,香港虚拟主机,当主要条件相同时,香港空间,一定要判断次要条件。 底层数据结构是二叉树。保证元素唯一性的依据:compareTo方法return 0; TreeSet排序的第一种方法:让元素自身具备比较性。元素需要实现Comparable接口,覆盖compareTo方法。 这正方式成为元素自然排序,虚拟主机,或者叫默认排序。 TreeSet的第二种排序方式。 当元素自身不具备比较性,或者具备的比较性,不是所以所需要的。 这是就需让集合自身具备比较性。在集合初始化时,就有了比较方式。 定义一个类,实现compareable接口,覆盖compare方法。 两种方式都存在时,以比较器为主。

代码如下:

package com.day14.wd;import java.util.Comparator;import java.util.Iterator;import java.util.TreeSet;public class TreeSetDemo { main(String[] ag){TreeSet ts=new TreeSet(new MyCompare());ts.add(new Student(“lisi”, 123));ts.add(new Student(“wangwu”, 23));ts.add(new Student(“wef”,23));Iterator it=ts.iterator();while (it.hasNext()) {Student ss = (Student) it.next();System.out.println(“name”+ss.getName()+”,age”+ss.getAge());}}}class MyCompare implements Comparator{public int compare(Object o1, Object o2) {// TODO Auto-generated method stubStudent p1=(Student)o1;Student p2=(Student)o2;num=p1.getAge()-p2.getAge();if(num==0){return p2.getName().compareTo(p2.getName());} num ;}}class Student {private String name;private int age;public Student(String name,int age){this.name=name;this.age=age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}细数门前落叶,倾听窗外雨声,

Comparator接口代码实例

相关文章:

你感兴趣的文章:

标签云: