当前位置: 移动技术网 > IT编程>开发语言>Java > Java Collections集合继承结构图_动力节点Java学院整理

Java Collections集合继承结构图_动力节点Java学院整理

2019年07月22日  | 移动技术网IT编程  | 我要评论
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。 数组虽然也可以存储对象,但长度是固定的;

面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。

数组虽然也可以存储对象,但长度是固定的;集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。
集合类的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。 

集合框架图  

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<? extends k,? extends v> 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学院整理,希望对大家有所帮助

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网