【学习日记】集合框架知识点总结(1)--Collection

本文深入探讨集合框架,包括Collection、Map等结构,详细解释List、Set、HashMap、TreeMap等具体实现及其特点,同时介绍了如何使用这些集合类进行元素的增删改查操作。

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

集合用来存储多个其他对象的对象,不能保存简单的类型。
集合框架结构图为:
集合结构图
主要分为Collection、Map和工具类。

Collection和Map的结构框架:
Collection
┣List
┃ ┣─LinkedList
┃ ┣─ArrayList
┃ ┗─Vector
┗Set
┣─HashSet
┗━TreeSet
Map
┣─HashMap
┗─TreeMap

Collection是一个集合接口,其有两个子接口,分别是List和Set。

List接口

该类集合里的元素是有序的,元素可以重复,该集合体系有索引
List集合下有三个集合类,分别是ArrayList、LinkedList和Vector。

数据结构特点
ArrayList数组结构查询速度很快,增删稍慢,线程不同步
LinkedList链表结构增删速度很快,查询稍慢,线程不同步
Vector(已过时)数组结构线程同步,效率较低
List的常用方法
add(element / index,element);向集合尾部或指定位置添加元素
addAll(Collection / index,Collection);将指定集合中的元素添加到该集合的尾部或指定位置
remove(index);移除该集合指定位置的元素
set(index,element);用指定元素替换指定位置的元素
查(获取)
get(index):返回指定位置的元素
subList(from,to);返回列表中指定位置之间的部分视图。
listIterator();返回此列表元素的列表迭代器
indexOf(obj):获取指定元素的第一次出现的位置。如不存在返回-1。

Set接口

该集合的元素是无序(存入和取出的顺序不一定一致),元素不可以重复,该集合没有索引

数据结构特点要求
HashSet哈希表线程不同步先后通过hashCode()equal()来判断元素是否相同,可根据需要来覆盖这两个方法
TreeSet二叉树线程不同步,可对元素进行排序排序方式一:实现Comparable接口,重写compareTo方法。排序方式二:创建比较器,实现Comparator接口,覆盖构造方法compare方法
TreeSet排序的两种方式

第一种方式:让元素自身具备比较性。
    元素需要实现Comparable接口,覆盖compareTo方法。也种方式也成为元素的自然顺序,或者叫做默认顺序。
第二种排序方式。
    当元素自身不具备比较性时,或者具备的比较性不是所需要的。这时就需要让集合自身具备比较性。即:覆盖TreeSet构造函数里的比较方法。定义了比较器,将比较器对象作为参数传递给TreeSet集合的构造函数。在集合初始化时,就有了比较方式。

  当两种排序都存在时,以比较器为主。定义一个类,实现Comparator接口,覆盖TreeSet类里的构造compare方法。
  记住,排序时,当主要条件相同时,一定判断一下次要条件。还有,compare方法比较的结果只是等于零,小于零,或等于零。并不是1,-1,0,只有自己构造的compare为了方便自己定的是1,-1,0。

迭代器

集合的取出元素的方式。

  迭代器是取出方式,会直接访问集合中的元素。所以将迭代器通过内部类的形式来进行描述。通过容器的iterator()方法获取该内部类的对象。
  

迭代器常用的方法
判断
Boolean hasNext();如果仍有元素可以迭代,则返回 true。
取出
String Next();返回迭代的下一个元素。
注意:每当使用该方法,则迭代器会自动迭代。即it.next();使用后,再使用it.next();时就已经是下一个数据了。所以使用it.next();最好将其传给obj,然后对obj进行操作。
删除
void Remove();从迭代器指向的 collection 中移除迭代器返回的最后一个元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值