集合--概念

1.1集合框架概述

集合--概念

集合和数组的相似点:都可以存储多个对象,对外作为一个整体

 数组的缺点(集合的优点):

1.数组的长度必须在初始化时指定,且固定不变

2.数组采用连续存储空间,删除和添加效率低

3.数组无法直接保存映射关系

4.数组缺乏封装,操作繁琐

集合的优点

1.集合的底层为数组时长度改变在封装内完成

2.集合的底层可以是数组,链表,哈希表,红黑树等,效率高

3.集合中的MAP专门用于保存映射关系

4.集合都是由接口和类的方式封装完成,可以直接调用(方便!!)

集合框架:

集合--概念集合--概念

集合--概念

容器两大类:Collection接口     和      Map接口

集合--概念

 Collection接口存储不唯一,无序的对象。包含list接口和Set接口:

list接口存储不唯一,有序的对象。相当于数组集合--概念

 set接口存储唯一,无序的对象:

集合--概念

Map接口存储一组键值对象,提供key到value的映射:比如学生与学号的集合

key: 唯一   无序

value:不唯一 无序

集合--概念

ArrayList(相当于线性表):

集合--概念

LinkedList(相当于链表):

集合--概念

1.2ArrayList

ArrayList的基本操作:

添加:

//add方法,在末尾添加
list.add(67);
list2.add(54);
list.add(2,93);//在数组索引为2的地方增加93
list.addAll(list2);//在list末尾加入list2
list.addAll(2,list2);//在索引为2处加入list2

删除:


list.removeAll(list2);//删除list中包含的list2中的元素(取并集)
list.retainAll(list2);//保留list中包含的list2中的元素(取交集)

修改:

list.set(1,99);

查询:

list.get(2);
list.size();
list.isEmpty();

在集合中使用泛型:

优点:

1.安全(自动类型判别)

2.方便(不用强转)

方法:

ArrayList<Integer> list =new ArrayList<Integer>();

不使用泛型会出现的问题:

1.不安全(不规范) :list.add("ssssada");

2.繁琐:需要进行强制转换,需要将接中的对象从object类转化为基本类型

上一篇:KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200)


下一篇:F-6