集合知识点总结

一.集合

1.什么是集合

集合框架:用于存储数据的容器。
数组其实就是一个集合。集合实际上就是一个容器,可以来容纳其它类型的数据。

集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是java对象的内存地址。(或者说集合中存储的是引用。)
list.add(100); //自动装箱Integer
注意:

  • 集合在java中本身是一个容器,是一个对象。
  • 集合中任何时候存储的都是“引用”。

2.集合的特点

集合的特点主要有如下两点:

  • 对象封装数据,对象多了也需要存储。集合用于存储对象。

  • 对象的个数确定可以使用数组,对象的个数不确定的可以用集合。因为集合是可变长度的

3.集合和数组的区别

1.数组是固定长度,集合是可变长度
2.数组可以存储基本数据类型,也可以存储引用数据类型。 集合只可以存储引用数据类型。
3.数组存储元素必须是同一类型,集合可以是不同数据类型。

4.数据结构

在java中每一个不同的集合,底层会对应不同的数据结构。往不同的集合中存储元素,等于将数据放到了不同的数据结构当中。
什么是数据结构?数据存储的结构就是数据结构。不同的数据结构,数据存储方式不同。例如:
数组、二叉树、链表、哈希表…
以上这些都是常见的数据结构。

二.集合继承结构图

1.集合继承结构图

在这里插入图片描述

在这里插入图片描述

2.常用集合类有哪些

Map接口Collection接口是所有集合框架的父接口:

Collection接口的子接口包括:Set接口和List接口。

Map接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及Properties等。

Set接口的实现类主要有:HashSet、TreeSet、LinkedHashSet等。

List接口的实现类主要有:ArrayList、LinkedList、Stack以及Vector等。

三. java.util.Collection接口

1.Collection接口

Collection

  • List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。

  • Map:无序(存入和取出顺序可能不一致),不可以存储重复元素,必须保证元素的唯一性。

  • 添加:
    add(object):添加一个元素
    addAll(Collection):添加一个集合中的所有元素。

  • 删除:
    clear():将集合中的元素圈删除 ,清空集合。
    remove(obj):删除集合中指定的对象。注意:删除成功,集合的长度会改变。
    remove(collection):删除部分元素。部分元素和传入Collection一致。

  • 判断:
    boolean contains(obj):集合中是否包含指定元素。
    boolean containsAll(Collection):集合中是否包含指定的多个元素。
    boolean isEmpty():集合中是否有元素。

  • 获取:
    int size():集合中有几个元素。

  • 取交集:
    boolean retainAll(Collection):对当前集合中保留和指定集合中相同的元素。如果两个元素相同,返回false;如果retainAll修改了当前集合,返回true。

  • 获取集合中的所有元素:
    Iterator iterator():迭代器

  • *将集合变成数组
    toArray();

2.java.util.Iterator接口:

迭代器:是一个接口。作用:用于取,遍历集合中的元素。

  • boolean hasNext() 如果仍有元素可以迭代,则返回true。

  • E next()
    返回迭代的下一个元素

  • void remove() 从迭代器指向的collection中移除迭代器返回的最后一个元素(可选操作)。

Iterator it=coll.iterator();//获取容器中的迭代对象

————————————————————————

public static void main(String[] args){
	Collection coll=new ArrayList();
	coll.add("abc0");
	coll.add("abc1");
	coll.add("abc2");
//————————方式一————————————
	Iterator it=coll.iterator();
		while(it.hasNext()){
		System.out.println(it.next());
}
//________方式二用此种____________
	for(Iterator it=coll.iterator();it.hasNext();){
		System.out.println(it.next());
	}
}

————————————————————————

四.List接口

List本身是Collection接口的子接口,具备了Collection的所有方法。现在学习List体系特有的共性方法,查阅方法发现List的特有方法都有索引,这是该集合最大的特点。
List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。
List:

  • ArrayList:底层数据结构是数组,线程不同步,查询元素的速度非常快。
  • LinkedList:底层数据结构是链表,线程不同步,增删元素的速度非常快。
  • Vector:底层数据结构是数组,线程不同步,Vector无论查询和增删都巨慢。
  1. 添加:
    add(index,element):在指定的索引处插入元素。
    addAll(index):在指定的索引处插入一堆元素。

  2. 删除:
    remove(index):删除指定索引位的元素。返回被删的元素。

  3. 获取:
    Object get(index):通过索引获取指定元素。
    int indexOf(obj): 获取指定元素第一次出现的索引位,如果该元素不存在返回-1。所以,通过-1,可以判断一个元素是否存在。
    int lastIndexOf(Object o):反向索引指定元素的位置。

  4. 修改:
    Object set(index,element):对指定索引位进行元素的修改。

  5. 获取所有元素:
    ListIterator listIterator():list集合特有的迭代器。

List集合支持对元素的增.删.改.查。

//List集合因为有下标有了另外获取元素的方式:遍历
for(int i=0:i<list.size();i++){
System.out.println("get:"+list.get(i));
}

ListIterator是List集合特有的迭代器

ListIterator it=list.listIterator; //取代Iterator it=list.iterator;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值