因为类本身并不知道怎么进行比较所以类要实现comparable接口并且要覆写public int compareTo(Person o)此方法。而且还要覆写equals()和hashCode()方法。如果不覆写equals()方法那么即使对象对应值都相等,但地址内存不一样程序还是会输出重复项。
主程序
package liyuanjinglyj;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class MyMainToPerson {
<wbr>public static void main(String[] args) {<br><wbr><wbr><wbr>Map map=new TreeMap();<br><wbr><wbr><wbr>map.put(new Person("sssss",22), "jingying");<br><wbr><wbr><wbr>map.put(new Person("bbbbb",23), "gaoshou");<br><wbr><wbr><wbr>map.put(new Person("xxxxxxx",21), "dineng");<br><wbr><wbr><wbr>System.out.println(map.get(new Person("sssss",22)));<br><wbr><wbr><wbr>Set> set=map.entrySet();<br><wbr><wbr><wbr>Iterator> iter=set.iterator();<br><wbr><wbr><wbr>while(iter.hasNext()){<br><wbr><wbr><wbr><wbr>Map.Entry mp=iter.next();<br><wbr><wbr><wbr><wbr>System.out.println(mp.getKey()+"->>"+mp.getValue());<br><wbr><wbr><wbr>}<br>
//<wbr><wbr>Map<wbr>map=new HashMap();<br>
//<wbr><wbr>map.put("zhangsan",1);<br>
//<wbr><wbr>map.put("zhangsan",2);<br>
//<wbr><wbr>map.put("liyuanjinglyj",3);<br>
//<wbr><wbr>map.put("baoling",4);<br>
//<wbr><wbr>for(Map.Entry me : map.entrySet()){<br>
//<wbr><wbr><wbr>System.out.println(me.getKey()+"->>"+me.getValue());<br>
//<wbr><wbr>}<br><wbr><wbr><br>
//<wbr><wbr>Set> set=map.entrySet();<br>
//<wbr><wbr>Iterator> iter=set.iterator();<br>
//<wbr><wbr>while(iter.hasNext()){<br>
//<wbr><wbr><wbr>Map.Entry mp=iter.next();<br>
//<wbr><wbr><wbr>System.out.println(mp.getKey()+"->>"+mp.getValue());<br>
//<wbr><wbr>}<br><wbr><wbr><wbr>}<br>
}<br>
自定义类Perso</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
package liyuanjinglyj;
public class Person implements Comparable{
<wbr>String name;<br><wbr>int age;<br><wbr>public Person(String n,int a){<br><wbr><wbr>this.name=n;<br><wbr><wbr>this.age=a;<br><wbr>}<br><wbr>public int compareTo(Person o){<br><wbr><wbr>if(this.age>o.age){<br><wbr><wbr><wbr>return 1;<br><wbr><wbr>}<br><wbr><wbr>else if(this.age<br><wbr><wbr><wbr>return -1;<br><wbr><wbr>}<br><wbr><wbr>else{<br><wbr><wbr><wbr>return this.name.compareTo(o.name);<br><wbr><wbr>}<br><wbr>}<br><wbr>public int hashCode() {<br><wbr><wbr>return this.name.hashCode()*this.age;<br><wbr>}<br><wbr>public boolean equals(Object obj) {<br><wbr><wbr>if(this==obj)<br><wbr><wbr><wbr>return true;<br><wbr><wbr>if(!(obj instanceof Person))<br><wbr><wbr><wbr>return false;<br><wbr><wbr>Person p=(Person)obj;<br><wbr><wbr>if(this.name==p.name&&this.age==p.age){<br><wbr><wbr><wbr>return true;<br><wbr><wbr>}<br><wbr><wbr>else{<br><wbr><wbr><wbr>return false;<br><wbr><wbr>}<br><wbr>}<br><wbr>public String toString(){<br><wbr><wbr>return "姓名"+this.name+"年龄"+this.age;<br><wbr>}<br>
}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
分享到:
相关推荐
Map,HashMap,TreeMap的使用 很详细额,值得看看
编写一个应用程序,使用TreeMap,V>类,分别按照价格和容量排序并输出10个硬盘的详细信息 9_5.编写一个应用程序,要求将LinkedList创建的对象写入到文件,然后读出一个LinkedList对象,并遍历LinkedList节点中的数据
vue 2.x echarts treemap带示例数据及效果图,及在对话框里显示的处理方法
本资源提供了List对对象中的属性和TreeMap, String>对键值排序,并针对100w条数据排序,对比List和TreeMap, String>排序的效率。个人认为排序效率对比可以相信,但也可能存在不科学之处,还请高手给与指点,多多包涵...
TreeMap按VALUE排序
TreeMap例子GDP
在eclipse上用java实现统计一句话或一段话中单词出现的个数,并按照字母表顺序输出,并利用treemap实现
TreeMap是一种基于红黑树实现的有序映射(SortedMap)。它实现了NavigableMap接口,可以按照键的自然顺序或自定义排序规则对键值对进行排序和访问。
TreeMap自己的理解
假设我们有一个宽度为 6、高度为 4 的矩形,并且进一步假设这个矩形必须细分为 7 个矩形,面积分别为 6、6、4、3、2、2 和 1。标准树形图算法使用一个简单的方法:矩形被水平或垂直细分。出现了细长的矩形,纵横比...
JAVA中用TREEMAP做的,可以求学生的总分,总分的平均值,最大值最小值
java编写的命令行学生信息管理程序,可插入学生信息,通过学生学号及姓名进行查询,对学号或成绩进行排名输出
TreeMap源码是基于数据结构中的红黑树进行设计并开发的。
Treemap-4.1.2.zip tree map开发代码,可用于创建tree map
Java TreeMap源码解析 Java TreeMap源码解析 Java TreeMap源码解析
C#实现的树图和放射环算法,信息可视化领域
treemap treeset hashset hashmap 简要介绍
java中HashMap,LinkedHashMap,TreeMap,HashTable的区别
Python TreeMap可视化方案数据源(因为不能粘贴链接额,具体实现实现代码,请看我博客专栏《机器学习》:))
JDK源码剖析之红黑树TreeMap,偶然看见,传上来分享一下