java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要介绍了 Java Collections 集合继承结构图_动力节点 Java 学院整理, 需要的朋友可以参考下
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。
数组虽然也可以存储对象,但长度是固定的;集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。 集合类的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。
集合框架图
Collection (集合的最大接口)继承关系
——List 可以存放重复的内容 ——Set 不能存放重复的内容,所以的重复内容靠 hashCode() 和 equals() 两个方法区分 ——Queue 队列接口 ——SortedSet 可以对集合中的数据进行排序
Collection 定义了集合框架的共性功能。
1,添加
add(e); addAll(collection);
2,删除
remove(e); removeAll(collection); clear();
3,判断。
contains(e); isEmpty();
4,获取
iterator(); size();
5,获取交集。
retainAll();
6,集合变数组。
toArray();
*add 方法的参数类型是 Object。以便于接收任意类型对象。 * 集合中存储的都是对象的引用 (地址)
List 的常用子类
List:
特有方法。凡是可以操作角标的方法都是该体系特有的方法。
增 add(index,element); addAll(index,Collection);
删
remove(index);
改
set(index,element);
查
get(index): subList(from,to); listIterator(); int indexOf(obj): 获取指定元素的位置。 ListIterator listIterator(); ——ArrayList 线程不安全,查询速度快 ——Vector 线程安全,但速度慢,已被 ArrayList 替代 ——LinkedList 链表结果,增删速度快
Set 接口Set:元素是无序 (存入和取出的顺序不一定一致),元素不可以重复。
|——HashSet: 底层数据结构是哈希表。是线程不安全的。不同步。
HashSet 是如何保证元素唯一性的呢?
是通过元素的两个方法,hashCode 和 equals 来完成。
如果元素的 HashCode 值相同,才会判断 equals 是否为 true。
如果元素的 hashcode 值不同,不会调用 equals。
注意, 对于判断元素是否存在,以及删除等操作,依赖的方法是元素的 hashcode 和 equals 方法。
——TreeSet:
有序的存放:TreeSet 线程不安全,可以对 Set 集合中的元素进行排序
通过 compareTo 或者 compare 方法来保证元素的唯一性,元素以二叉树的形式存放。
集合的输出
4 种常见的输出方式
——Iterator: 迭代输出,使用最多的输出方式 ——ListIterator: Iterator 的子接口,专门用于输出 List 中的内容 ——Enumeration ——foreach
在迭代时,不可以通过集合对象的方法操作集合中的元素。
因为会发生 ConcurrentModificationException 异常。
所以,在迭代器时,只能用迭代器的放过操作元素,可是 Iterator 方法是有限的,
只能对元素进行判断,取出,删除的操作,
如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。
该接口只能通过 List 集合的 listIterator 方法获取。
Map 接口Correction、Set、List 接口都属于单值的操作,而 Map 中的每个元素都使用 key——>value 的形式存储在集合中。
Map 集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。
1,添加。
put(K key, V value) putAll(Map m)
2,删除。
clear() remove(Object key)
3,判断。
containsValue(Object value) containsKey(Object key) isEmpty()
4,获取。
get(Object key) size() values() entrySet() keySet()
8、Map 接口的常用子类
Map
|HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将 hashtable 替代,jdk1.2. 效率高。
|--TreeMap:底层是二叉树数据结构。线程不同步。可以用于给 map 集合中的键进行排序。
集合工具类Collections: 集合框架的工具类。里面定义的都是静态方法。
Collections 和 Collection 有什么区别?
Collection 是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。
它有两个常用的子接口,
List:对元素都有定义索引。有序的。可以重复元素。
Set:不可以重复元素。无序。
Collections 是集合框架中的一个工具类。该类中的方法都是静态的
提供的方法中有可以对 list 集合进行排序,二分查找等方法。
通常常用的集合都是线程不安全的。因为要提高效率。
如果多线程操作这些集合时,可以通过该工具类中的同步方法,将线程不安全的集合,转换成安全的。
以上所述是小编给大家介绍的 Java Collections 集合继承结构图_动力节点 Java 学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 PHPERZ 网站的支持!
来源: http://www.phperz.com/article/17/1230/357299.html