Java之泛型练习
2016-03-12 22:11
543 查看
package cn.itcast.generics; import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet; /* * 方法一:实现Comparable接口 */ //class Person implements Comparable<Person> {//实现Comparable接口,使得集合元素具备可比较性 // String name; // int age; // // public Person(String name, int age) { // super(); // 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; // } // // @Override // public int compareTo(Person p) {//复写Comparable的compareTo()方法 //// Person p = (Person) o; // /* // * 按年龄进行比较 // */ //// int temp=this.age-p.age; //// return temp==0?this.getName().compareTo(p.getName()):temp; // /* // * 按姓名进行比较 // */ // int temp=this.getName().compareTo(p.getName()); // return temp==0?this.age-p.age:temp; // } // //} /* * 方法2:实现Comparator接口,覆盖compare()方法, * 并且将该类对象作为实际参数传递给TreeSet集合的构造函数 */ class Person implements Comparator<Person>{ String name; int age; public Person() { } public Person(String name, int age) { super(); 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; } @Override public int compare(Person o1, Person o2) { int temp=o1.getName().compareTo(o2.getName()); return temp==0?o1.getAge()-o2.getAge():temp; } } public class GenericDemo2 { /** * @param args */ public static void main(String[] args) { TreeSet<Person> p = new TreeSet<Person>(new Person()); p.add(new Person("lisi", 21)); p.add(new Person("ahangsan", 42)); p.add(new Person("wangwu", 21)); p.add(new Person("buliu", 34)); p.add(new Person("xuliu", 26)); Iterator<Person> it = p.iterator(); while (it.hasNext()) { Person p2 = it.next(); System.out.println(p2.getName() + ":::" + p2.getAge()); } } }
相关文章推荐
- Java基础复习系列三
- 20145232 韩文浩 《Java程序设计》第2周学习总结
- 了解HashMap的get和put内部的工作原理,需要理解透Java HashMap的原理
- Java中的除
- Java eclipse下 Ant build.xml实例详解 附完整项目源码
- java继承
- 简单探讨java中String类的hashCode()
- Java配置环境变量
- Java Thread Join Example with Explanation
- 区间求交集算法
- java web开发_购物车功能实现
- java中子类能不能继承父类的私有成员
- spring集成httpclient配置
- Java中有效值位数控制
- Jdk安装问题
- java设计模式--责任链(二)
- Java开发中的23种设计模式详解
- JVM JRE JDK 三者的关系
- Leetcode:36. Valid Sudoku(JAVA)
- Java中的拦截器、过滤器、监听器