Java-类集(Collection接口)

本文深入解析Java集合框架,包括Collection和Map接口,探讨其设计原则、接口特性及其实现类,如ArrayList、LinkedList、HashSet、TreeSet等。同时,文章详细介绍了List、Set和Map的不同输出方式及遍历方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、产生背景:

①、保存一组对象,按照之前做法只能使用对象数组,但数组本身有长度限制(同一类型且长度固定)

②、类集是一个动态的对象数组,不受对象数组长度限制(同一类型且长度不固定)

二、类集常用接口:

①、Collection接口

②、Map接口

三、总结:

类集设计为接口,目的是容易扩展和修改

四、类集Collection、Map接口

接口                 Collection接口-->泛型(多种类型)                        Map接口
子接口

list接口

线性列表的存储方式,存储顺序和添加顺序相同元素可重复

双向输出

Set接口

不保证元素的顺序

不允许出现重复的元素

不允许双向输出


输出:

HashMap无序输出:A+C+D

HaspTable(Propertites)无序输出:A+C+D

TreeMap(SortedMap)有序输出:A+C+D

IdentitvHashMap(key可以重复的Map集合)输出:A+C+D

JSONObject输出:C+D

实现类

ArrayList

输出是:A+B+C

LInkedList(Queue)

JDK1.0

Vector(stack)

HashSet

输出是:A+C

TreeSet(SortedSet)

输出是:A+C

集合输出                                                                       集合输出(输出方式)
                   A                        B                    C           D

Iterator  迭代输出,使用最多的方式

boolean  hasNext()://判断是否有下一个值

E  next()://取出当前元素

void  remove():

ListIterator  是给Iterator的子接口

interface  ListIterator<E>  extends  Iterator<E>

boolean  hasPrevious()://判断时候有上一个元素

E  previous()://取出当前元素

int  previous()://返回上一个元素的索引号

int  perviousIndex()://返回上一个元素的索引号

在list接口文件中有-LIstIterator<E>  listIterator();

foreach    可以输出数组和集合

for循环+集合下标(可从左到右,从右到左)

Map.entrySet()-->Set-->Iterator/foreach

keySet--Set-->Iterator/foreach

总结此接口结果是由前向后单向输出可以双向输出,一定要先由前往后输出,然后在由后往前输出

五、interface  Collection<E>  extends  Iterable<E>  引入了泛型

Collection接口:存放一组单值的最大父接口,单值是指集合中的每个元素都是一个对象

List接口:是Collection接口的子接口,对Collection接口进行了大量扩充,里面的只可重复

Collection接口Iterable接口LIst接口
int  size();  //长度Iterator<T> iteratorE  get(int index)
boolean  isEmpty();//是否为空E  set(int  index,E element);
boolean  contains(Object   o)void add(int index,E element);
Iterator<E>  iterator();//元素迭代E remove(int index);
Object[]  toArray();int indexOf(Object o);
<T> T[]  toArray(T[] a);int lastIndexOf(Object o);
boolean  containsAll(Callection<?>  c);LisrIterator<E>  listIterator();
boolean  add(E e);//添加元素LisrIterator<E>  listIterator(int  index);
boolean  remove(Object o);Lise<E> subList(int fromIndex,int  toIndex);
boolean  addAll(Collection<? extends E>  c);

以上抽象方法是在Collection接口基础上添加的

                             List接口都是和下标有关

boolean  removeAll(Collection<?> c);
boolean  retainAll(Colletion<?> c);
void  clear();
int  hashCode();
                        A              B                                        C

六、接口内的抽象方法,只能有实现类完成

ArryList  长度/添加/删除/搜索/元素遍历/排序

源码:ArrayList<E>  implements List<E>

//常规写法

ArrayList<String>  arrayList = new ArrayList<String>();

//多态上转,对接口进行实例化

List<String>  list = new ArrayList<String>();

类集经常操作命令:

add,remove,clear

set,get

indexof,size ,contains

iterator(集合输出)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yang.y.w

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值