java集合框架之Collection
Posted Yienfong_Chueng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java集合框架之Collection相关的知识,希望对你有一定的参考价值。
集合框架类似于容器,内部装有相同属性的对象,是一种工具类
1、数组和集合比较:
数组的长度是固定的,集合是可以动态扩展的;
数组只能通过下标访问数组元素,类型固定;而有些集合比如hashmap可以通过任意类型查找所映射到具体对象。
2、
Collection与Map都是接口,其中后子接口List(序列)和Queue(队列)内的元素是有序的,可重复的,Set(集)内的元素是无序的不可重复的;
List实现类:ArrayList(数组序列)
Queue实现类:LinkedList(链表)
Set实现类:HashSet(哈希集)
Map实现类:HashMap(哈希表)
一个映射即Entry类的实例
3、List接口的实现类ArrayList
List是元素有序并且可以重复的集合,被称为序列。
List可以精准的控制每个元素的插入位置或者删除某个位置的元素。
ArrayList]是数组序列,是List的实现类。
ArrayList底层是由数组实现的。
ArrayList具体方法:
boolean add(E e) //将指定的元素添加到此列表的尾部。
void add(int index, E element) // 将指定的元素插入此列表中的指定位置。
boolean addAll(Collection<? extends E> c) /*按照指定
collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。 */
boolean addAll(int index, Collection<? extends E> c) //从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。
void clear() //移除此列表中的所有元素。
Object clone() // 返回此 ArrayList 实例的浅表副本。
boolean contains(Object o) //如果此列表中包含指定的元素,则返回 true。
void ensureCapacity(int minCapacity) // 如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。
E get(int index) // 返回此列表中指定位置上的元素。
int indexOf(Object o) //返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。
boolean isEmpty() // 如果此列表中没有元素,则返回 true
int lastIndexOf(Object o) //返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。
E remove(int index) //移除此列表中指定位置上的元素。
boolean remove(Object o) // 移除此列表中首次出现的指定元素(如果存在)。
protected void removeRange(int fromIndex, int toIndex) //移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。
E set(int index, E element) // 用指定的元素替代此列表中指定位置上的元素。
int size() // 返回此列表中的元素数。
Object[] toArray() // 按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。
<T> T[] toArray(T[] a) // 按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。
void trimToSize() // 将此 ArrayList 实例的容量调整为列表的当前大小。
Arrays.asList()
将一个数组转化为一个List对象,这个方法会返回一个ArrayList类型的对象, 这个ArrayList类并非java.util.ArrayList类,而是Arrays类的静态内部类!用这个对象对列表进行添加删除更新操作,就会报UnsupportedOperationException异常。
4、泛型
- 集合中的元素可以是任意类型的对象(对象的引用):如果把某个对象放进集合中,则会忽略它的类型,被当作Object来处理。
- 泛型规定了某个集合只可以存放特定类型的对象:会在编译期间对类型检查,可以直接按指定类型获取集合元素。
泛型取出元素不用强制转换
5、Set接口及其实现类HashSet
Set元素是无序的并且不可以重复的集合,被称为集;
HashSet哈希集,是Set接口的重要实现类。
Set 无法用get()来取出或者精确位置添加元素,这是因为Set是无序的。只能用foreach或者iterator来遍历;同理,Set也无法用set()来修改元素。
Set中可以添加空对象 “null” 编译不会报错 只是没有意义。
以上是关于java集合框架之Collection的主要内容,如果未能解决你的问题,请参考以下文章