Java基础知识之集合(容器)简介
来源:互联网 发布:mac打开侧边栏快捷键 编辑:程序博客网 时间:2024/05/23 02:01
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)
Implementations Hash Table Resizable Array Balanced Tree Linked List Hash Table + Linked List Interfaces Set HashSet TreeSet LinkedHashSetList ArrayList LinkedList Deque ArrayDeque LinkedList Map HashMap TreeMap LinkedHashMap
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<String> books = new HashSet<String>();books.add("123");books.add("456");books.add("789");Iterator<String> 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.ConcurrentModificationExceptionat 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.ConcurrentModificationExceptionat java.util.HashMap$HashIterator.nextEntry(Unknown Source)at java.util.HashMap$KeyIterator.next(Unknown Source)at collect.iterators.Iterators.main(Iterators.java:15)
Collections是一个工具类,提供了对集合的排序,查找,修改以及同步的功能,后面将会详细介绍。
- Java基础知识之集合(容器)简介
- Java集合容器简介
- 黑马程序员——java基础知识之集合框架(容器)
- JAVA容器集合简介1
- Java基础知识之容器(一)
- Java基础知识之容器(一:容器整体框架探索)
- Java基础之容器(集合)
- java集合之集合简介
- java基础之 集合容器
- JAVA基础知识之Set集合
- JAVA基础知识之List集合
- JAVA基础知识之Queue集合
- Java基础知识之集合操作
- Java基础知识之集合(三)
- JAVA之容器类简介
- Java基础----Java容器之集合
- Java 集合类 之 集合类简介
- java集合类(容器)
- 1073. Scientific Notation
- Textfield首行缩进 光标颜色 清除按钮样式
- 102. Binary Tree Level Order Traversal (二叉树层次遍历)
- (一)ImageProcess软件学习--BmpFile.h头文件
- git基本命令操作备忘
- Java基础知识之集合(容器)简介
- JS左则菜单跳转问题(window.location.href )
- JdbcUtil 链接,【更新、插入、删除】,查询,释放
- Java NIO Pipe
- hbase的常用操作
- 本博客不在更新了
- Day52、单行函数、日期类型和常用的日期函数、多表查询(表连接)、内连接、外连接
- HDU 1950 POJ 1631 Bridging signals【LIS,二分优化】
- 【Day33】Apache服务器的负载平衡