Java集合框架的简单描述

目录

一、集合和数组区别

二、常用方法

三、Collection类

1.List接口及实现类

2.Set接口及实现类

3.Queue接口及实现类

四、Map接口及实现类


在编写面向对象的程序时,经常要用到一组类型相同的对象。可以使用数组来集中存放这些类型相同的对象,但数组一经定义便不能改变大小。于是,Java集合出现了。

集合指集中存放一组对象的一个容器,提供了保存、获取和操作其他元素的方法。

集合框架由两种类型构成,一个是Collection,另一个是Map。Collection对象用于存放一组对象,Map用于存放一组“关键字/值”(键值对)的对象。Collection和Map是最基本的接口,它们又有子接口,如下所示。

 

一、集合和数组区别

1.数组的长度固定,集合的长度可变

2.数组可以存放基本数据类型,也可以存放引用数据类型,集合只能存放引用数据类型

3.数组只能存储同一种类型,集合可以存储不同的类型

二、常用方法

实现基本操作的方法有添加元素、删除元素、返回元素的个数、返回迭代器对象。

        boolean add(E e):向集合中添加元素e

        boolean remove(Object o):从集合中删除指定的元素o

        boolean contains(Object o):返回集合中是否包含指定的元素o

        boolean isEmpty():返回集合是否为空,即不包含元素

        int size():返回集合中包含的元素个数

三、Collection类

Collection类是java.util包中定义的工具类,这个类提供了若干static方法实现集合对象的操作。

1.List接口及实现类

List接口是Collection的子接口,实现一种线性表的数据结构。存放在List中的所有元素都有一个下标(从0开始),可以通过下标访问List中的元素。List中可以包含重复元素。List的实现类包括ArrayList、LinkedList、Vector和Stack。

        E get(int index):返回指定下标处的元素

        E set(int index,E element):修改指定下标处的元素

        void add(int index,E element):将指定元素插入到指定下标处

        E remove(int index):删除指定下标处的元素

        int indexOf(Object o):查找指定对象第一次出现的位置

        int lastIndexOf(Object o):查找指定对象最后一次出现的位置

ArrayList类

ArrayList是List的最常用的线性表实现类,ArrayList类实际上实现了一个变长的对象数组,其元素可以动态地增加和删除。

2.Set接口及实现类

Set接口是Collection的子接口,Set接口对象类似于数学上的集合概念,其中不允许出现重复的元素。Set接口没有定义新的方法,只包含从Collection接口继承的方法。

HashSet类

HashSet类用于散列方法存储元素,具有最好的存取性能。在向Set对象添加元素时,重复的元素不能添加到集合中。它并不保证集合中元素的顺序。

TreeSet类

TreeSet类实现一种树集合,使用红-黑树为元素排序,添加到TreeSet中的元素必须是可以比较的,即元素的类必须实现ComparableK<T>接口。它的操作比HashSet慢。

3.Queue接口及实现类

Queue接口是Collection的子接口,是以先进先出(first in first out,FIFO)的方式排列其元素,一般称为队列。

        boolean add(E e):将指定的元素e插入到队列中,失败时抛出异常

        E remove():返回队列头元素,同时将其删除,失败时抛出异常

        E element():返回队列头元素,但不将其删除,失败时抛出异常

        boolean offer(E e):将指定的元素e插入到队列中

        E poll():返回队列头元素,同时将其删除,失败时返回空

        E peek():返回队列头元素,但不将其删除,失败时返回空

ArrayDeque类和LinkedList类

Deque的常用实现类包括ArrayDeque类和LinkedList类,前者是可变数组的实现,后者是线性表的实现。LinkedList类比ArrayDeque类更灵活,实现了线性表的所有操作,其中可以存储null元素,但ArrayDeque对象不能存储null。

四、Map接口及实现类

Map是用来存储键值对的对象。在Map中存储的关键字和值都必须是对象,并要求关键字是唯一的,而值可以重复。

        public V put(K key,V value):向映射对象中添加一个键值对

        public V get(Object key):返回指定键的值

        public V remove(Object key):从映射中删除指定键的键值对

        public boolean containsKey(Object key):返回映射中是否包含指定的键

        public boolean containsValue(Object value):返回映射中是否包含指定的值

        public int size():返回映射中包含的键值对个数

        public boolean isEmpty():返回映射是否为空

Map接口的常用实现类有HashMap、TreeMap和Hashtable类

HashMap类以散列方法存放键值对;TreeMap类实现了SortedMap接口,保证Map中的键值对按关键字升序排序;Hashtable类是Java早期版本提供的一个存放键值对的实现类,实现了一种散列表,也属于集合框架。Hashtable类的方法都是同步的,因此它的线程是安全的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值