基础知识回顾-collection集合
前言
此文章作为个人笔记用来回顾java的基础知识,希望自己能坚持学习,最终能够有所提升。
提示:以下是本篇文章正文内容
一、集合概述
集合是java中提供的一种容器,可以用来存储多个数据。集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection 和双列集合java.util.Map。
1. Collection集合
Collection集合是单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是 java.util.List 和 java.util.Set。
List的特点是元素有序可重复。Set的特点是元素无序且不可重复。List接口的主要实现类有 java.util.ArrayList 和 java.util.LinkedList,Set接口的主要实现类有 java.util.HashSet 和 java.util.TreeSet。
- Collection常用方法
Collection是所有单列集合的父接口,因此在Collection中定义了单列集合通用的方法。常用方法如下:
public boolean add(E e) //向集合添加元素。
public void clear() //清空集合中所有的元素。
public boolean remove(E e) //移除集合中指定的元素。
public boolean contains(E e) //判断集合中是否包含给定对象。
public boolean isEmpty() //判断集合是否为空。
public int size() //返回集合的长度。
public Object[] toArray() //把集合转换为数组。
- Iterator接口
针对集合的遍历需求,JDK提供了 java.util.Iterator 接口,Iterator接口主要用于迭代访问集合中的元素,所以也被称为迭代器。
迭代器的使用方法:首先根据集合中定义的方法public Iterator iterator()
获取迭代器。然后使用迭代器的public E next()
方法获取元素,再根据public boolean hasNext()
方法判断是否还有下一个元素,循环往复。如果集合没有下一个元素时继续使用next()方法,那么将会抛出异常 java.util.NoSuchElementException。
ps: 增强for循环是java1.5后提供的专门用来遍历数组和集合的高级for循环,其内部还是迭代器。for(元素类型 变量 : 要遍历的对象)
2. List集合
java.util.List 接口继承自Collection接口,是单列集合的一个重要分支。
- List 接口的特点:
1.) 元素存取有序,每个元素都有特定的位置;
2.) 它是一个带有索引的集合,通过索引可以精确地操作集合中的元素;
3.) 集合中可以有重复元素(通过equals判定元素是否重复);
- List 接口的特有方法:
public void add(int index, E element) //将元素添加到集合的指定位置
public E get(int index) //返回集合中指定位置的元素
public E remove(int index) //移除集合中指定位置的元素
public E set(int index, E element) //替换集合中指定位置的元素
- ArrayList 集合:
java.util.ArrayList 集合是List的子类。数据存储的结构是数组结构,元素增删慢,查找快。是开发中常用的集合。
- LinkedList 集合:
java.util.LinkedList 集合是List的子类。数据存储的结构是双向链表结构,元素增删快,查找慢。LinkedList提供了大量的首位操作元素的方法:
public void addFirst(E e) //将元素添加到集合的开头
public void addLast(E e) //将元素添加到集合的末尾
public E getFirst() //获取集合开头的元素
public E getLast() //获取集合末尾的元素
public E removeFirst() //移除集合开头的元素
public E removeLast() //移除集合末尾的元素
public E pop() //从此集合表示的堆栈处弹出一个元素
public void push(E e) //将元素推入集合表示的堆栈
public boolean isEmpty() //判断集合是否为空
3. Set集合
java.util.Set 接口和 List 接口一样,继承自Collection接口。它与Collection中的方法基本一致,并没有对Collection接口进行功能上的扩充,只是比Collection接口更加严格了。与 List 接口不同的是,Set 接口存储元素无序,并且都会以某种规则保证存入的元素不出现重复。
二、相关问题
- 集合与数组的区别:
1.)组的长度是固定的。集合的长度是可变的。
2.)数组中存储的是同一类型的元素,可以存储基本数据类型。集合存储的都是对象,而且对象的类型可以不一致。开发当中对象多的时候一般使用集合存储。
- 泛型的好处
1.避免程序运行时产生java.lang.ClassCastException类型转换异常。
2.避免了类型强制转换的麻烦。
总结
上学的时候就没习惯做笔记,现在也没太大变化。笔记不好做,博客也一样。短短的一篇回顾笔记照着文档来记录,花了将近两个小时也才如此这般,加油~