1. Use Iterator instead of the for-each construct when you need to:
a. Remove the current element. The for-each construct hides the iterator, so you cannot call remove. Therefore, the for-each construct is not usable for filtering.
b. Iterate over multiple collections in parallel.
for (Iterator<String> i = c.iterator(); i.hasNext(); )
if (i.next().length() == 4)
i.remove();
2. bulk operation
a. removeAll()
c.removeAll(Collections.singleton(e));
More specifically, suppose you want to remove all of the null
elements from a Collection
.
c.removeAll(Collections.singleton(null));
3. Map Interface
a. Comparison to Hashtable
Map
provides Collection
views instead of direct support for iteration via Enumeration
objects. Collection
views greatly enhance the expressiveness of the interface, as discussed later in this section.
Map
allows you to iterate over keys, values, or key-value pairs; Hashtable
does not provide the third option.
Map
provides a safe way to remove entries in the midst of iteration; Hashtable
did not.
Hashtable has method contains, but Map has containsValue parallels containsKey.
4. Implementations
General-purpose Implementations
Interfaces
Hash table Implementations
Resizable array Implementations
Tree Implementations
Linked list Implementations
Hash table + Linked list Implementations
Set |
HashSet |
|
TreeSet |
|
LinkedHashSet |
List |
|
ArrayList |
|
LinkedList |
|
Queue |
|
|
|
|
|
Map |
HashMap |
|
TreeMap |
|
LinkedHashMap |
Queue implementation include LinkedList
and PriorityQueue
.
5. Convenience Implementations
a. Arrays.asList
b. Immutable Multiple-Copy List
Collections.nCopies
c. Immutable Singleton Set
Collections.singleton
d.Empty Set, List, and Map Constants
The Collections
.emptySet
, Collections
.emptyList
, and Collections
.emptyMap
.
分享到:
相关推荐
进入Java集合框架的核心,我们有四个主要接口:`Collection`、`List`、`Set`和`Map`。`Collection`是最基础的接口,它是所有集合的父接口,但它不提供`get()`方法,通常我们通过`Iterator`遍历`Collection`。`List`...
良葛格的Java JDK 5.0学习笔记详细讲解了这个版本的关键知识点,非常适合初学者和有经验的开发者回顾。下面我们将深入探讨其中的重要内容。 1. **自动类型转换与变量声明(Generics)** Java 5.0引入了泛型,允许...
本篇“Java学习笔记”聚焦于面向对象编程这一核心概念,是学习Java的宝贵资料。 面向对象编程(Object-Oriented Programming, OOP)是Java的基础,它将程序分解为独立的对象,每个对象都有自己的属性(数据)和行为...
#### Java集合框架(Collection Framework) Java集合框架提供了一组用于存储和操作对象的接口和类。主要包括`Collection`和`Map`两个顶级接口。 1. **Collection**:这是一个顶级接口,表示一组对象,这些对象...
类集框架、JDBC.pdf**:类集框架(Collection Framework)是Java中用于存储和操作数据的工具,包括List、Set、Map接口及其实现。JDBC(Java Database Connectivity)则是与数据库交互的标准API,讲解了如何连接...
【JAVA认证-SCJP阅读笔记】是一份详细整理的备考SCJP(SUN Certified Java Programmer)的资料,涵盖了Java编程的基础知识。以下是笔记中的主要内容: 1. 合法的程序入口点(Main)与命名规则: - 主方法(main)...
Framework学习文档是关于Struts2、Mybatis、JavaScript和jQuery的详细笔记,涵盖了这些技术的基本概念、架构、配置、使用方法等方面的知识点。 一、Struts2框架 1. Struts2是典型的MVC框架,在整个MVC框架中充当...
本手册将详细介绍LEGO框架的学习和使用,重点在于理解其操作步骤和核心组件。 首先,LEGO框架的核心操作流程分为以下几个步骤: 1. **UML类图生成**:使用特定工具根据UML类图自动生成Java类和持久化对象接口。这...
描述中提到的"大学生 C/C++/JAVA/Python数据结构学习笔记和资料大全"表明这个资源不仅针对C语言,还涵盖了C++、Java和Python的数据结构学习。这四个语言在数据结构上的差异主要体现在面向对象特性、内存管理和库支持...
在【压缩包子文件的文件名称列表】中,有一个名为"C#.doc"的文件,这可能是一个包含详细教程或者笔记的Microsoft Word文档,涵盖了C#.net的基本概念、语法和实践案例,对学习者来说是一份宝贵的资料。
【标题】: "YuanGoLearnSomething:个人知识...综上所述,YuanGoLearnSomething项目很可能包含了关于C#语言的各种学习笔记,涵盖了从基础知识到高级特性的全面讲解,对于学习和巩固C#知识的用户来说是一份宝贵的资源。