什么时候需要重写容器类的hashcode()和 equals()方法?
当容器类对象作为索引时需要重写这两个方法。 多用于 HashSet、HashMap 以及HashTree类。
因为在哈希表中当需要比较索引值是否equals时需要重写equals方法,而如果两个对象equals,那么他们的hashcode也必须相同; 反之,如果两个对象hashcode相同,但不equals,在具有相同hashcode的对象中再进行遍历复杂度就小很多了。
HashMap 和TreeMap的区别:
import java.util.HashMap;
import java.util.TreeMap;
public class TestTreeMap {
/**
* @param args
*/
public static void main(String[] args) {
//HashMap是无序的
prt("The following is HashMap");
HashMap<String,Object> hashMap = new HashMap<String,Object>();
hashMap.put("004", new Integer(40));
hashMap.put("003", new Integer(30));
hashMap.put("001", new Integer(10));
hashMap.put("002", new Integer(20));
prt(hashMap);
//TreeMap是有序的
prt("The following is TreeMap");
TreeMap<String,Object> treeMap = new TreeMap<String,Object>();
treeMap.put("004", new Integer(40));
treeMap.put("003", new Integer(30));
treeMap.put("001", new Integer(10));
treeMap.put("002", new Integer(20));
prt(treeMap);
}
private static void prt(Object obj) {
System.out.println(obj);
}
}
HashMap的访问:
import java.util.*;
public class VisitHashMap{
public static void main(String[] args){
Map<String,Integer> m=new HashMap<String,Integer>();
m.put("1",11);
m.put("2",22);
m.put("3",33);
Iterator it=m.entrySet().iterator();
while(it.hasNext()){
Map.Entry e=(Map.Entry)it.next();
System.out.println(e.getKey());
System.out.println(e.getValue());
}
}
}
更多关于java 容器的分析:http://lorry1113.iteye.com/category/64948?show_full=true
分享到:
相关推荐
JAVA 容器类应用JAVA 容器类应用JAVA 容器类应用JAVA 容器类应用JAVA 容器类应用JAVA 容器类应用JAVA 容器类应用
java容器
JAVA 容器用法详解,关于JAVA容器的详细讲解
Java 容器.pdf_电子版pdf版
NULL 博文链接:https://newtime.iteye.com/blog/431572
题目摘要:考虑下列的信息系统。出版社需要记录下列书籍和作者的信息: P1: 每一本书有一个title,一个description和一个ISBN number 还有 出版的日期(包括年/月) P2: 每一本书有1个或多个作者。...
JAVA容器一些基础题
该文档是有关常用java类容器总结,能够帮助了解有关常用容器的使用环境,以及各容器的优劣。
Java容器讲解PPT,Collection Map(HashMap TreeMap LinkedHashMap) List (ArrayList LinkedList Vector) Set (HashSet TreeSet LinkedHashSet)
java容器简介 Array对象 List Set 迭代器Iterator
归纳了java中常用容器包括List、set、map等
JAVA容器基础知识,分析及使用方法,知识总结,数组,List,set,Map
Java容器有两种基本类型Collection 和 Map
主要是介绍java容器的相关信息,是初学者很好的学习材料
后缀为.mmap的思维导图,总结了JAVA容器的常见类
对于java容器的一些归纳整理,顺着思维导图能方便自己的理解,提高运用能力
详解java中容器是什么,从各个方面详解
java练习题--容器使用练习
java 集合类 容器类 Collection 很让人费解的东西