博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础知识之集合(容器)简介
阅读量:4705 次
发布时间:2019-06-10

本文共 2112 字,大约阅读时间需要 7 分钟。

JAVA的集合体系,主要由Collection接口,Map接口,Iterator接口和操作集合的工具类Collections组成。其中的Iterator只是一个迭代器,真正的容器则派生自Collection和Map。

Collection是一个根接口,它没有直接的实现类,但是它有三个字接口分别是Set,Queue和List。

Set接口是一种无序,元素不可重复的集合(否则无法区分元素),Set接口重要的实现(子)类是HashSet和TreeSet(非直接实现)

Queue接口模拟队列,遵循FIFO原则,它有个重要子类是ArrayQueue.

List接口是有序,元素可重复的集合,重要实现类有ArrayList.

LinkedList是一个特殊的实现类,同时实现了Queue和List,因此同时拥有队列和链表的功能。

Collect接口提供的通用方法有add(),adAll(),clear(),contains(),isEmpty(),iterator(),remove()

下面是Collection接口类图

Map是一个key-value集合,key是不可以重复的,最常用的Map实现类有HashMap(非线程安全)和TreeMap

下面是Map继承树

下面是摘自oracle官方的图标,Java集合框架体系。(Collections Framework Overview)

 

Iterator 是一个集合元素迭代器,用来替代JDK1.0中的Enumeration,在Collection根接口中, 以类组合的方式定义了一个Iterator<E> iterator()方法,使得Set, Queue和List这三个集合元素都可以通过iterator迭代的方式访问。iterator提供了hasNext(), next(), remove()三个常用方法来访问集合。

注意,使用iterator迭代过程中,不可修改集合元素【即不能直接调用集合的remove()方法】,否则会发生异常;只有调用iterator的remove()方法删除上一次next()返回的元素才可以,如下面的例子。

package collect.iterators;import java.util.Collection;import java.util.HashSet;import java.util.Iterator;public class Iterators {	public static void main(String[] args) {		Collection
books = new HashSet
(); books.add("123"); books.add("456"); books.add("789"); Iterator
it = books.iterator(); while(it.hasNext()) { String book = (String)it.next(); System.out.println(book); if(book.equals("456")) { it.remove(); //books.remove(book); } book = "测试"; } System.out.println(books); }}

执行结果如下

123456Exception in thread "main" java.util.ConcurrentModificationException	at java.util.HashMap$HashIterator.nextEntry(Unknown Source)	at java.util.HashMap$KeyIterator.next(Unknown Source)	at collect.iterators.Iterators.main(Iterators.java:15)

上面这个例子,如果注释掉it.remove(); 而用下面那行books.remove(book);替代的话,将会得到下面的结果。

123456Exception in thread "main" java.util.ConcurrentModificationException	at java.util.HashMap$HashIterator.nextEntry(Unknown Source)	at java.util.HashMap$KeyIterator.next(Unknown Source)	at collect.iterators.Iterators.main(Iterators.java:15)

Collections是一个工具类,提供了对集合的排序,查找,修改以及同步的功能,后面将会详细介绍。

 

转载于:https://www.cnblogs.com/fysola/p/6017185.html

你可能感兴趣的文章
SCP-bzoj-1079
查看>>
Python 实践项目 游戏
查看>>
AJAX--Jquery
查看>>
模拟新浪微博随便看看
查看>>
环境搭建
查看>>
解密EXL
查看>>
简易版cnlog
查看>>
erlang程序运行的几种方式
查看>>
堆heap和栈Stack(百科)
查看>>
html5页面实现点击复制功能
查看>>
633. 寻找重复的数
查看>>
沉淀,再出发:python中的pandas包
查看>>
Rule 12: Remove Duplicate Scripts(Chapter 12 of High performance Web Sites)
查看>>
缓存服务的更新策略有哪些?
查看>>
php, nginx高并发优化
查看>>
python内置魔法方法
查看>>
Python自学DAY03
查看>>
兴趣问题清单
查看>>
力扣——N叉树的后序遍历
查看>>
C++ namespace命名空间
查看>>