Java主要类集记录

Java类集是框架可以使程序在处理对象时更加标准化,类集接口是所有构造类集的基础,主要基于Collection接口和Map接口;接下来我们进行主要的接口实现类介绍。(网上很多该类的博客,但是关系图似乎不太正确,博主在剖析源码利用idea给处继承关系图,应该是比较正确的图,哈哈,基于不重复造轮子的思想,本文转自他人博客,仅记录笔记而已!)

集合框架主要继承关系图

Collection类

该类主要方法
在这里插入图片描述

在这里插入图片描述

绿色实线------接口的继承关系 | 绿色虚线------接口的实现关系 | 蓝色实线------类的继承关系
-------------------------------------------------------------------------------------------------------------------------
通过剖析源码,我们可以得到Collection接口时继承Iterable迭代器接口;迭代器的知识大家就自行了解了,这篇文章针对集合类展开介绍

List常用子类(有序存储,索引查找,可重复)

在这里插入图片描述

——ArrayList 线程不安全,查询速度快
——Vector 线程安全,但速度慢,已被ArrayList替代
——LinkedList 链表结果,增删速度快

Set接口分支(无序不重复)

Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。
——HashSet:底层数据结构是哈希表。是线程不安全的。不同步。
  HashSet是如何保证元素唯一性的呢?
  是通过元素的两个方法,hashCode和equals来完成。
  如果元素的HashCode值相同,才会判断equals是否为true。
  如果元素的hashcode值不同,不会调用equals。
注意,对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。
——TreeSet:
有序的存放:TreeSet  线程不安全,可以对Set集合中的元素进行排序
通过compareTo或者compare方法来保证元素的唯一性,元素以二叉树的形式存放。

集合输出

6、集合的输出

——4种常见的输出方式

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

——ListIterator: Iterator的子接口,专门用于输出List中的内容

——Enumeration

——foreach

在迭代时,不可以通过集合对象的方法操作集合中的元素,因为会发生ConcurrentModificationException异常。所以,在迭代器时,只能用迭代器的放过操作元素,可是Iterator方法是有限的,只能对元素进行判断,取出,删除的操作,如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。该接口只能通过List集合的listIterator方法获取。

Map类接口

在这里插入图片描述
Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。
在这里插入图片描述
8、Map接口的常用子类

Map
——HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。
——TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。

集合工具类

Collections:集合框架的工具类。里面定义的都是静态方法。
Collections和Collection有什么区别?
Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。
它有两个常用的子接口:
——List:对元素都有定义索引。有序的。可以重复元素。
——Set:不可以重复元素。无序。
Collections是集合框架中的一个工具类。该类中的方法都是静态的。
——提供的方法中有可以对list集合进行排序,二分查找等方法。
——通常常用的集合都是线程不安全的。因为要提高效率。
——如果多线程操作这些集合时,可以通过该工具类中的同步方法,将线程不安全的集合,转换成安全的

比较

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值