5.java集合学习,Set,List,Map

时间:2023-02-26 08:33:37

java–学习五.java集合类

概念:
一种工具类,就像是容器,存储任意数量的具有共同属性的对象


1. 特点及其解决的问题,

(1. 长度不确定。
(2. 可自行排序。
(3. 以键值对的形式存储数据。


2. 典型类有:

(1. 实现Collection接口的 Set,List 及其实现类,ArrayList,SashSet等
(2. 实现Map接口的 HashMap 及其实现类 HashTable等

3.作用:
(1. 在类的内部,对数据进行组织
(2. 简单而快速的搜索大数量的条目
(3. 有的集合接口,提供一系列排列有序的元素,并且可以在序列中减快速的插入或者删除有关元素
(4. 有的接口,提供了映射关系,可以通过关键字(key)去快速查找对应的唯一对象,而这个关键字是任意类型。
数组弊端:
(1. 数组的长度固定,集合长度可变
(2. 数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象


4. java集合框架体系结构

(1).LinkedList(链表)
List(序列) —> ArrayList(数组序列)(存储排列有序可以重复)
Collection(接口) ————> Queue(队列) —> LinkedList(链表)
Set(集) —> HashSet(哈希集)(无序不可重复)

集合:

Map(接口) —–实现类——-> HashMap(哈希图)由 Entry (键值对) Key-Value组成

List(接口) —–> ArrayList
(1. 元素有序并且可以重复的集合 — 序列
(2. 可以精确的控制每个元素的插入位置和删除某个位置的元素
(3. ArrayList(数组序列),底层是有数组实现的


5. List使用:
(1. 创建声明一个集合的对象:

首先需要声明一个集合如:

 List<Object(类型可不写)> list;
//由于List是接口类型不能实例化,在这实例它的实现类
this.list = new ArrayList<Object(和上面元素类型相同)>();

(2. 向集合中添加元素:

add(int, Object(和上述类型相同));  
//int为插入位置,默认(集合从0计起),不写默认插入到尾部

(3. 取出集合中的元素:

===1. 使用get()方法, 
list.get(int) //获取int位置的元素,不可大于等于存储个数,不可小于零
===2. 通过迭代器来遍历List
Iterator iterator = list.iterator();
while(iterito.hasNext()){
object obj = iterito.next();
}// hasNext() 判断是否还有元素,next() 依次访问元素
===3. 通过for each 方法访问集合元素
for(Objrect obj : list)
{
...
}// 逐个访问 list 中的元素

(4. 修改List中的元素

使用 set() 方法
list.set(int, Object);

//int -- 添加到的位置(从零开始) Object -- 添加的对象

(5. 删除相应位置的元素

使用 Remove() 方法
list.Remove(int);
// int -- 需要删除的位置(从零开始)
list.Remoce(list.get(int))
// 先要获得 int 位置上的对象,然后删除(该对象出现的一次的元素)

removeAll(List)
//删除和 List 集合中相同对象的所有元素,没有的不删除

子类对象是父类对象,但父类对象不是子类对象
基本类型不能作为集合的范性,必须使用其包装类



6. Set 使用:
Set 是元素无序并且不可重复的集合 – 被称为集
HashSet – 哈希集, 是Set 的一个重要实现类

(1. 没有 set() 修改指定位置元素信息的方法没有 get() 方法

2. Set 会对重复元素进行屏蔽

(3. 其他使用放法同List

7. Map 使用:

Map提供了一种映射的关系,其中元素是键值对( key - value)的形式存储的,能够实现
根据 key 快速查找 value键值对是以 Entry 类型的对象实例形式存在

键(key值)不可以重复, value 值可以重复
每个键最多映射一个值,一个值可被多个键映射。

* * *
Map支持范性, 形如 : Map < K , V > K,V均为类类型

(1. HashMap 类 HashMap 是 Map 的一个实现类,也是最常用的基于哈希表实现
(2. HashMap 中的Entry 对象是无序排列的
(3. key 值 和 value 值都是可以为 null, 但是一个 HashMap只有一个 key 值为 null的映射(key 值不可重复)
(4. Map 添加和 List 和 Set 添加的方法有异 put(key , value);
(5. Map 获得Value 使用 get(key) 获得相应的 value
(6. Map 删除操作 remove(key)
(7. Map 修改集合内容 同添加,相当于是添加了新的内容,将之前内容覆盖