什么时候需要重写容器类的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
分享到:
相关推荐
在IT领域,Java容器是一个非常重要的概念,尤其对于软件开发者来说,它们是理解和构建高效、可扩展的应用程序的关键。本文将深入探讨Java容器,并结合标签“源码”和“工具”,从源码层面和实用工具角度来分析这些...
Java容器详细解析 Java容器是一种基本的数据结构,用于存储和管理对象。Java容器主要分为两大类:Collection和Map。 Collection Collection是一个独立元素的序列,这些元素都服从一条或多条规则。Collection接口...
### Java容器学习心得详解 在Java编程中,容器(Containers)是存储和操作对象集合的重要工具,主要包括集合(Collections)和映射(Maps)。本文将深入解析Java容器的关键概念、特性以及不同容器类型的应用场景。 ...
JAVA 容器用法详解,关于JAVA容器的详细讲解
这篇博客"JAVA容器对象整理"可能涵盖了关于Java中的不同容器类、接口以及它们的使用方式。在这里,我们将深入探讨一些核心的Java容器知识点。 1. **ArrayList与LinkedList** - `ArrayList`是一个基于数组实现的...
Java容器是Java编程中至关重要的一个部分,它们用于存储、管理和操作对象集合。在这个主题下,我们将深入探讨Java中的核心容器类,包括数组、List、Set和Map,以及它们各自的特点和使用场景。 1. **数组**:数组是...
题目摘要:考虑下列的信息系统。出版社需要记录下列书籍和作者的信息: P1: 每一本书有一个title,一个description和一个ISBN number 还有 出版的日期(包括年/月) P2: 每一本书有1个或多个作者。...
通过这些练习,你将巩固对Java容器的理解,提高代码编写效率,并为解决实际问题打下坚实基础。记得在实践中不断挑战自己,尝试不同的场景和数据结构,以便更好地掌握Java容器的精髓。祝你在学习过程中取得优异的成绩...
Java容器讲解PPT,Collection Map(HashMap TreeMap LinkedHashMap) List (ArrayList LinkedList Vector) Set (HashSet TreeSet LinkedHashSet)
此外,处理多线程环境时,需注意线程安全问题,某些容器如ArrayList和HashMap在并发环境下直接使用可能会导致数据不一致,这时可以考虑使用Collections.synchronizedXXX()方法进行同步,或者使用并发容器如...
### Java容器起源与JSP容器背景解析 #### 容器技术概述 容器技术在现代IT领域扮演着极其重要的角色,特别是在云计算和微服务架构中。本文将深入探讨容器技术的起源,尤其是针对Java环境中JSP容器的发展历程及其...
Java 类容器是 Java 编程中非常重要的一个概念,它主要指的是 Java 集合框架中的各种类,如 ArrayList、LinkedList、HashSet、HashMap 等,这些类用于存储和管理对象。本文将深入探讨这些常用的Java类容器,帮助...
Java容器类是Java编程语言中不可或缺的一部分,它们主要用于存储和管理对象。这些类和接口位于`java.util`包中,为开发者提供了灵活的数据结构和数据操作方式。在Java中,容器类主要分为两大类:Collection和Map。 ...
在Java编程语言中,容器(Container)是一种用来存储和管理数据结构的重要概念,它提供了组织、存储和操作数据的方式。容器通常指的是集合框架中的各种类,如List、Set、Map等,它们允许开发者以不同的方式存储和...
后缀为.mmap的思维导图,总结了JAVA容器的常见类
Java 容器的两种基本类型:Collection 和 Map Collection 和 Map 是 Java 中的两种基本容器类型,它们都可以用来存储和管理对象,但它们有着不同的特点和用途。 Collection 是一种聚集对象的容器,每个位置只能...
对于java容器的一些归纳整理,顺着思维导图能方便自己的理解,提高运用能力
Java 1.5引入的并发容器(集中在`java.util.concurrent`包下)旨在解决这些问题。其中,`CopyOnWriteArrayList`和`CopyOnWriteArraySet`是典型的写时复制(Copy-On-Write,COW)容器,它们在写操作时创建容器副本,...
Java容器类是Java集合框架的重要组成部分,它们提供了一种存储、管理和操作对象的方式。在Java中,容器类包括数组、列表、队列、集、映射等数据结构,它们为开发者提供了灵活的数据处理能力。本篇文章将深入探讨Java...
java 容器类 集合类 Collection 你懂了吗