集合

什么是集合,有什么用

集合实际上就是一个容器,可以来容纳其他类型的数据

集合为什么说在开发中使用比较多,?

集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是java对象的内存地址(或者说集合中存储的是引用)

注意:集合在java中本身是一个容器,是一个对象

集合中任何时候存储的都是”引用“

在java中每一个不同的集合。底层会对应不同的数据结构,往不同的集合中存储元素,等于将数据放到不同的数据结构当中,什么是数据结构?

数据存储的结构就是数据结构,不同的数据结构,数据存储方式不同:例如数组、二叉树、链表、哈希表……

以上这些都是常见的数据结构

使用了不同的集合,等同于使用了不同的数据结构。

  • 在java集合这一章节,需要掌握的不是精通数据结构,java中已经将数据结构实现了,已经写好了这些常用的集合类,只需要掌握怎么用。在什么情况下选择哪一种合适的集合去使用即可

 

集合在java jdk中的java.util.*包下

结构图

 

Iterator it =“Collection 对象”.iterator();

it 是迭代器对象

 

 

  • list集合存储元素特点:
  • 有序可重复,存储的元素有下标。有序实际上是说存进去是这个顺序,取出来还是这个顺序,这里的顺序不是说按照大小排序。有序是因为list集合都有下标,下标从0开始,以1递增
  • set集合存储元素特点:
  • 无序不可重复。无序表示存进去是这个顺序,取出来就不定时这个顺序,另外set集合中元素没有下标,set集合中元素还不能重复

 

 

 

集合分为两大类

  • 单个方式存储元素:

单个方式存储元素,这一类集合中超级父接口:java.util.Collection;

  • 以键值对的方式存储元素

以键值对的方式存储元素,这一类集合中超级父接口:java.util.Map

5月4日

map集合

map

  • map集合和collection集合没有关系
  • Map集合以key和value的这种键值对的方式存储元素
  • key和value都是存储java对象的内存地址。
  • 所有Map集合的key特点:无序不可重复的。
    map集合的key和set集合存储元素特点相同

总结(所有实现类)

ArrayList:底层是数组

LinkedList:底层是双向链表

Vector:底层是数组,线程是安全的,效率较低,使用较少

HashSet:底层是HashMap,放到HashSet集合中的 元素等同于放到HashMap集合key部分了

TreeSet:底层是TreeMap,放到TreeSet集合中的元素等同于放到TreeMap集合key部分了

HashMap:底层是哈希表

Hashtable:底层也是哈希表,只不过线程安全的,效率较低,使用较少

Properties:是线程安全的,并且key和value只能存储字符串String

TreeMap:底层是二叉树,TreeMap集合的key可以自动按照大小顺序排序

 

list集合存储元素的特点:

有序可重复

有序:存进去的顺序和取出的顺序相同,每个元素都有下标

可重复:存进去1,可以再存储一个1

Set集合 存储元素的特点:

无序不可重复

无序:存进去的顺序和取出的顺序不一定相同,另外,集合中元素没有下标

不可重复:存进去是1,不能再存储1了

SortedSet(SortedMap)集合存储元素特点:

首先是无序不可重复的,但是SortedSet集合中的元素是可排序的

无序:存进去的顺序和取出的顺序不一定相同。另外Set集合中元素是没有下标的。

不可重复:存进去1,不能再存储1

可排序:可以按照大小顺序排序

  • Map集合的key。就是一个Set集合
    往Set集合中放数据,实际上放到了Map集合的key部分
     
  •