Java-1-集合Collection

声明:本系列blog均为博主学习Java3y的博客,自主整理而得

集合Collection

一、集合介绍

1.1 为什么需要集合

  1. Java面向对象,需要处理对象
  2. 为了方便操作多个对象,需要存储多个对象(变量),就需要一个容器
  3. 常用容器有stringbuffered和数组,但是数组的长度不可变

1.2 数组和集合的区别

  • 长度:数组长度固定,集合长度可变
  • 数据类型:数组可以存储基本数据类型和引用类型;集合只能存储引用类型(存int会自动装箱成Integer)

1.3 集合的由来与功能

  • 集合可存储多个元素,但对多个元素也有不同需求(不能相同,要按照某种规则排序)

Java-1-集合Collection
Java-1-集合Collection
Java-1-集合Collection

二、迭代器(Iterator)介绍

  • collection的源码继承了iterable接口,有iterator()方法,返回iterator
  • iterator是接口,只有三个方法:hasNext(),next(),remove()
  • 在arraylist以内部类方式实现iterator,从源码可以看出实际就是遍历集合

Java-1-集合Collection

三、List集合介绍

  • 特点:有序(存储顺序和取出顺序一致),可重复
  • List中有ListIterator接口,可以往前遍历、添加元素、设置元素

3.1 List集合常用子类

  • ArrayList–底层数据结构是数组,线程不安全;
  • LinkedList–底层数据结构是链表,线程不安全;
  • Vector–底层数据结构是数组,线程安全;

四、Set集合介绍

  • 特点:元素不可重复

4.1 Set集合常用子类

  • HashSet集合–底层数据结构是哈希表
  • TreeSet集合–底层数据结构是红黑树(自平衡二叉树),保证元素排序方式
  • LinkedHashSet集合–底层数据结构由哈希表和链表组成