Java 集合类
集合类
Java提供了一套实现了Collection接口的集合标准集合类。其中一些是集合具体类,这些类可以直接拿来使用,集合而另外一些是集合抽象类,提供了接口的集合部分实现。

标准集合类汇总于下面:
序号 类 描述
1 AbstractCollection 实现了大部分的集合集合接口。
2 AbstractList 继承于AbstractCollection 并且实现了大部分List接口。集合
3 AbstractSequentialList 继承于 AbstractList ,集合提供了对数据元素的集合链式访问而不是随机访问。
4 LinkedList 继承于 AbstractSequentialList,集合实现了一个链表。集合
5 ArrayList 通过继承AbstractList,集合实现动态数组。集合
6 AbstractSet 继承于AbstractCollection 并且实现了大部分Set接口。集合
7 HashSet 继承了AbstractSet,集合并且使用一个哈希表。
8 LinkedHashSet 具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。
9 TreeSet 继承于AbstractSet,使用元素的自然顺序对元素进行排序.
10 AbstractMap 实现了大部分的Map接口。
11 HashMap 继承了HashMap,并且使用一个哈希表。
12 TreeMap 继承了AbstractMap,并且使用一颗树。香港云服务器
13 WeakHashMap 继承AbstractMap类,使用弱密钥的哈希表。
14 LinkedHashMap 继承于HashMap,使用元素的自然顺序对元素进行排序.
15 IdentityHashMap 继承AbstractMap类,比较文档时使用引用相等。
。。。
在前面的已经讨论通过java.util包中定义的类,如下所示:
序号 类 描述
1 Vector Vector类实现了一个动态数组。和ArrayList和相似,但是两者是不同的。
2 Stack 栈是Vector的一个子类,它实现了一个标准的后进先出的栈。
3 Dictionary Dictionary 类是一个抽象类,用来存储键/值对,作用和Map类相似。
4 Hashtable Hashtable是原始的java.util的一部分,服务器托管 是一个Dictionary具体的实现 。
5 Properties Properties 继承于 Hashtable.表示一个持久的属性集.属性列表中每个键及其对应值都是一个字符串。
6 BitSet 一个Bitset类创建一种特殊类型的数组来保存位值。BitSet中数组大小会随需要增加。
一个Bitset类创建一种特殊类型的数组来保存位值。BitSet中数组大小会随需要增加。
。。。
集合算法
集合框架定义了几种算法,可用于集合和映射。这些算法被定义为集合类的静态方法。
http://www.iis7.com/b/wzjk/
在尝试比较不兼容的类型时,一些方法能够抛出 ClassCastException异常。当试图修改一个不可修改的集合时,抛出UnsupportedOperationException异常。
集合定义三个静态的变量:EMPTY_SET EMPTY_LIST,EMPTY_MAP的。这些变量都不可改变。
序号 算法 描述
1 Collection Algorithms 这里是一个列表中的所有算法实现。亿华云
。。。
如何使用迭代器
通常情况下,你会希望遍历一个集合中的元素。例如,显示集合中的每个元素。
做到这一点最简单的方法是采用一个迭代器,它是一个对象,实现了Iterator 接口或ListIterator接口。
迭代器,使你能够通过循环来得到或删除集合的元素。ListIterator继承了Iterator,以允许双向遍历列表和修改元素。
这里通过实例列出Iterator和listIterator接口提供的所有方法。
。。。
如何使用比较器
TreeSet和TreeMap的按照排序顺序来存储元素. 然而,这是通过比较器来精确定义按照什么样的排序顺序。
这个接口可以让我们以不同的方式来排序一个集合。
序号 比较器方法描述
1 使用 Java Comparator这里通过实例列出Comparator接口提供的所有方法
。。。
总结
Java集合框架为程序员提供了预先包装的数据结构和算法来操纵他们。
集合是一个对象,可容纳其他对象的引用。集合接口声明对每一种类型的集合可以执行的操作。
集合框架的类和接口均在java.util包中。
相关文章
- 摘要:在使用电脑的过程中,有时我们会发现系统的时间与实际时间不一致。这可能会导致一系列问题,如文件创建时间错误、无法正常使用某些软件等。本文将介绍一些解决电脑时间错误的方法,帮助您快速调...2025-11-05

Node.js vs Ruby on Rails:哪个最适合Web开发?
大家好,在本文中,我们将比较Node.js和Ruby on Rails在Web开发上孰优孰劣。我写这篇文章的主要原因是我们的团队不断被问及哪种语言或哪个框架最适合学习。无论如何,我们从不给出一个简单的2025-11-05
本文从最基础的概率论到各种概率分布全面梳理了基本的概率知识与概念,这些概念可能会帮助我们了解机器学习或开拓视野。这些概念是数据科学的核心,并经常出现在各种各样的话题上。重温基础知识总是有益的,这样我们2025-11-05
几年前做前后端分离项目的原因,是node刚刚横空出世,业界开始考虑如何真正的用js去写后端服务,于是就借鉴阿里中途岛项目去尝试,主要还是用到了node的密集io场景下的转发。我们的新项目是采用前后端分2025-11-05探究电脑密码错误的原因与解决方法(密码保护下的安全隐患与应对策略)
摘要:在当今数字化时代,我们越来越依赖于电脑以及互联网,而密码作为我们信息安全的第一道防线,保护着我们重要的个人和机密信息。然而,我们有时会遭遇电脑密码错误的情况,这给我们的正常工作和生...2025-11-05
一、前言继续接之前 Java 多线程的内容,之前讲解了 Java 下多线程的使用,有兴趣的可以先看看《白话说 Java 线程一)之让线程先跑起来》。但是能舞的起来是徒弟,能停的优雅才是师傅。接下来让我2025-11-05

最新评论