Java功能丰富的集合类向我们展示了Java在数据结构方面编程的强大功能,而功能如此强大的集合类,正是源自于Java具有的面向对象思想特性。
归纳起来讲,Java的集合可以分为两类,第一类是以数组为代表,这类集合可以描述线性表类型的数据结构,第二类是以Map为代表,这类集合可以描述“键值对”类型的数据结构。
描述第一类数据结构的集合是以Collection为基类,在Collection类里,封装了线性表的插入、删除等基本操作;而数据结构的集合是以Map为基类。两类集合分别通过继承和扩展这两个基类,可以逐渐细化,从而得到诸如堆栈和哈希表之类的数据集合对象。
其中需要了解的集合类和辅助类包括如下:
Collections |
|
Arrays |
|
ArrayList |
|
LinkedList |
|
HashMap |
|
LinkedHashMap |
|
TreeMap |
|
WeakHashMap |
|
IdentityHashMap |
|
HashTable |
|
HashSet |
|
LinkedHashSet |
|
TreeSet |
|
EnumMap |
|
EnumSet |
|
BitSet |
|
Vector(可视为动态数组的实现,同时可以实现动态增长的功能) |
|
Stack |
|
Queue(接口) |
|
PriorityQueue |
|
ArrayDeque |
其中,Collections 和 Arrays 两个辅助类帮助数组和容器类的排序、复制等等的操作,同时使得两者之间的转换变得如此的得心应手。
EnumMap和EnumSet则是为了枚举类而设置的哈希类,方便使用。
其他的容器类则根据实际情况来使用,不过需要注意的是:
1. List,Map,Set是不同步的(如果多个线程同时访问一个容器类实例,而其中至少一个线程从结构上修改了该实例,则它必须保持外部同步。这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedXXX 方法将该列表“包装”起来。这最好在创建时完成,以防止意外对列表进行不同步的访问。)
2. 快速失败(如果在迭代器创建后的任意时间从结构上修改了容器类实例(通过迭代器自身的 remove 或 add 方法之外的任何其他方式),则迭代器将抛出异常。迭代器很快就完全失败,而不是冒着在将来不确定的时间任意发生不确定行为的风险)
3. BitSet, EnumMap, EnumSet, HashTable不允许插入null值
4. 除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。
5. 在Hash表中,有两个概念是非常重要的:equals 和 hashCode。这两个概念才使得Hash表的实现成为了可能。
6. Map的迭代方式有两种:一是普通的iterator方法来逐一遍历,二是通过entrySet来实现。如:
Map<String,String> map = new HashMap<String,String>(){{
this.put("1", "1"); this.put("2", "2");
this.put("3", "3"); this.put("4", "4");
this.put("5", "5"); this.put("6", "6");
}};
Set<Entry<String, String>> set = map.entrySet();
Iterator<Entry<String, String>> iter = set.iterator();
while(iter.hasNext()){
Entry<String,String> entry = iter.next();
System.out.print("key:"+entry.getKey()+", ");
System.out.println("value:"+entry.getValue());
}
分享到:
相关推荐
Java容器类是Java编程语言中不可或缺的一部分,它们主要用于存储和管理对象。这些类和接口位于`java.util`包中,为开发者提供了灵活的数据结构和数据操作方式。在Java中,容器类主要分为两大类:Collection和Map。 ...
Java容器类是Java集合框架的重要组成部分,它们提供了一种存储、管理和操作对象的方式。在Java中,容器类包括数组、列表、队列、集、映射等数据结构,它们为开发者提供了灵活的数据处理能力。本篇文章将深入探讨Java...
### Java 容器类解析及对比 #### 一、概述 在Java开发中,容器类是程序员必须掌握的基础知识之一。本文将详细解析并对比Java中的各种容器类,...希望本文的内容能够帮助大家更好地理解和掌握Java容器类的相关知识。
Java容器类是Java编程中非常重要的一部分,它们为数据存储提供了丰富的结构和操作。本文主要关注的是Java中的两种主要容器类型:Collection和Map,以及它们的一些具体实现,如List接口下的ArrayList、LinkedList和...
Java容器类,也称为集合类,是Java编程中用于存储和管理对象的重要工具。它们提供了比数组更加灵活和强大的功能,适用于各种复杂的数据结构需求。本文主要探讨Java容器类的基本概念、特点以及不同类型的容器。 首先...
Java容器类是Java编程中的核心概念,主要用于存储和管理对象。在Java程序设计课程中,容器类的教学至关重要,因为它们提供了动态数据结构,使得开发者能够高效地组织和操作数据。然而,由于容器类的深入理解需要数据...
java 容器类 集合类 Collection 你懂了吗
Java容器类是Java集合框架的重要组成部分,它为处理对象集合提供了数据结构和算法的支持。本篇文章将重点介绍Java容器类中Collection接口、Map接口、Iterator接口以及List、Set和Map的实现类。 首先,Collection...
### Java容器类详解:List、ArrayList、Vector及Map、HashTable应用 #### 一、Java容器类概述 在Java中,容器类(也称为集合类)主要用于存储和管理对象。Java SDK提供了一系列内置容器类,它们位于`java.util`...
### Java应用:两种Java容器类List和Set分析 #### 一、概述 在Java编程语言中,集合框架(Collections Framework)是处理数据的核心组件之一,它提供了存储和操作对象的各种方式。本文将深入探讨Java中的两种重要...
Java容器类接口框架是Java集合框架的核心,它提供了一套高效、灵活的数据存储和管理机制。本文将深入探讨Java中的Collection接口及其子接口,包括List、Queue、Deque、Map以及Set接口,同时也会介绍迭代器的相关概念...
Java容器类是Java编程语言中用于管理和组织对象的重要工具,它们位于`java.util`包下。容器类主要包括了集合框架(Collection Framework),这是一个强大的数据结构系统,提供了多种数据存储方式和操作方法。在这个...
Java容器类是Java编程语言中用于管理和操作对象集合的重要组成部分,它们主要集中在`java.util`包下。在Java集合框架中,"容器"通常指的是能够存储一组对象的类或者接口。这个框架为开发者提供了灵活的方式来存储、...
Java容器类学习教案.pptx
题目摘要:考虑下列的信息系统。出版社需要记录下列书籍和作者的信息: P1: 每一本书有一个title,一个description和一个ISBN number 还有 出版的日期(包括年/月) P2: 每一本书有1个或多个作者。...
Java 容器类知识点详细总结 Java 容器类是 Java 语言中的一种非常重要的数据结构,用于存储和管理对象的集合。Java 容器类可以分为四个主要部分:Collection、Map、Iterator 和子接口。 容器接口 容器接口是 Java...
1结合GUI包在DOS窗口具有添加作者和书籍的功能。(做成GUI界面) 2具有查询一本书所有作者基本信息的功能。包括我只想查某一个属性 3具有查询一个作者所有书目的功能 4 具有对所有书目按客户指定类型排序的功能 ...