集合
伊颦伊笑
人的悲欢并不相通
展开
-
集合——练习
练习一package collection_;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;/** * @Author: Gin * @Description: * @Modified By: Gin * @Date: Created in 11:22 2021/9/25 */public class HomeWor原创 2021-09-25 15:47:14 · 112 阅读 · 0 评论 -
集合——Collections
Collections工具类介绍Collections 是一个操作 Set、List 和 Map 等集合的工具类Collections 中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作排序操作:(均为 static 方法)reverse(List):反转 List 中元素的顺序shuffle(List):对 List 集合元素进行随机排序sort(List):根据元素的自然顺序对指定 List 集合元素按升序排序sort(List, Comparator):根据指定的 Com原创 2021-09-25 11:46:09 · 135 阅读 · 0 评论 -
集合——TreeMap源码
TreeMap 源码解读【与TreeSet大致一样,因为 TreeSet 底层就是 TreeMap】package collection_;import java.util.Comparator;import java.util.TreeMap;/** * @Author: Gin * @Description: * @Modified By: Gin * @Date: Created in 9:27 2021/9/25 */public class TreeMap_ {原创 2021-09-25 09:42:51 · 93 阅读 · 0 评论 -
集合——TreeSet源码解读
源码TreeSet 底层是 TreeMappackage collection_;import java.util.Comparator;import java.util.TreeSet;/** * @Author: Gin * @Description: * @Modified By: Gin * @Date: Created in 11:21 2021/9/24 */public class TreeSet_ { public static void main(St原创 2021-09-24 11:55:03 · 131 阅读 · 0 评论 -
集合——集合选择规则
原创 2021-09-24 09:58:39 · 74 阅读 · 0 评论 -
集合——Properties
介绍Properties 类继承自 Hashtable 类并且实现了 Map 接口,也是使用一种键值对的形式来保存数据。他的使用特点和 Hashtable 类似Properties 还可以用于从 xxx.properties 文件中,加载数据到 Properties 类对象,并进行读取和修改说明:工作后 xxx.properties 文件通常作为配置文件,具体使用:https://blog.csdn.net/qq_43575044/article/details/120100882pa.原创 2021-09-24 09:49:28 · 75 阅读 · 0 评论 -
集合——Hashtable
Hashtable 基本介绍存放的元素是键值对:即 K-Vhashtable 的键和值都不能为 nullhashTable 使用方法基本上和 HashMap 一样hashTable 是线程安全的,hashMap 是线程不安全的package collection_;import java.util.Hashtable;/** * @Author: Gin * @Description: * @Modified By: Gin * @Date: Created in 9:06原创 2021-09-24 09:32:25 · 97 阅读 · 0 评论 -
集合——HashMap底层机制及源码解析
扩容机制【和 HashSet 相同】HashMap 底层维护了 Node 类型的数组 table,默认为 null当创建对象时,将加载因子( loadfactor )初始化为 0.75.当添加 key-val 时,通过 key 的哈希值得到在 table 的索引。然后判断该索引处是否有元素,如果没有元素直接添加。如果该索引处有元素,继续判断该元素的 key 和准备加入的 key 是否相等,如果相等,则直接替换 val ; 如果不相等需要判断是树结构还是链表结构,做出相应处理。如果添加时发现容量不够,原创 2021-09-23 21:35:32 · 99 阅读 · 0 评论 -
集合——Map 接口
Map 接口实现类的特点Map 与 Collection 并列存在。用于保存具有映射关系的数据:Key-ValueMap 中的 key 和 value 可以是任何引用类型的数据,会封装到 HashMap$Node 对象中Map 中的 key 不允许重复,原因和 HashSet 一样,前面分析过源码.Map 中的 value 可以重复Map 的 key 可以为 null ,value 也可以为 null,注意 key 为 null ,只能有一个, value 为 null ,可以多个.常用 St原创 2021-09-23 19:47:49 · 97 阅读 · 0 评论 -
集合——LinkedHashSet
基本介绍LinkedHashSet 是 HashSet 的子类LinkedHashSet 底层是一个 LinkedHashMap,底层维护了一个数组+双向链表LinkedHashSet 根据元素的 hashCode 值来决定元素的存储位置,同时使用链表维护元素的次序(图),这使得元素看起来是以插入顺序保存的。LinkedHashSet 不允许添重复元素说明在 LinkedHastSet 中维护了一个 hash 表和双向链表(LinkedHashSet 有head和tail)每一个节点.原创 2021-09-22 19:20:36 · 608 阅读 · 0 评论 -
集合——HashSet 源码解读
Set 接口基本介绍无序(添加和取出的顺序不一致),没有索引不允许重复元素,所以最多包含一个nullpackage collection_;import java.util.HashSet;import java.util.Iterator;import java.util.Set;/** * @Author: Gin * @Description: 以 Set 接口的实现类 HashSet 来讲解 Set 接口 * @Modified By: Gin * @Date: C原创 2021-09-17 22:01:44 · 220 阅读 · 0 评论 -
集合——ArrayList 和 LinkedList 比较
ArrayList 和 LinkedList 比较二者都是线程不安全如何选择 ArrayLink 和 LinkedList如果我们改查的操作多,选择 ArrayList如果我们增删的操作多,选择 LinkedList一般来说,在程序中,80%-90%都是查询,因此大部分情况下会选择 ArrayList在一个项目中,根据业务灵活选择,也可能这样,一个模块使用的是 ArrayList ,另外一个模块是 LinkedList ,也就是说,要根据业务来进行选择...原创 2021-09-17 09:11:28 · 86 阅读 · 0 评论 -
集合——LinkedList【底层代码】
基本介绍LinkedList 底层实现了 双向链表 和 双端队列 特点可以添加任意元素(元素可以重复),包括 null线程不安全,没有实现同步底层操作机制LinkedList 底层维护了一个双向链表.LinkedList 中维护了两个属性 first 和 last 分别指向首节点和尾节点每个节点(Node对象),里面又维护了 prev、next、item 三个属性,其中通过 prev指向前一个,通过 next指向后一个节点。最终实现双向链表LinkedList 的元素的原创 2021-09-16 21:55:51 · 142 阅读 · 0 评论 -
集合——Vector【底层代码】
基本介绍与 ArrayList 作比较Vector 底层也是一个对象数组Vector 是线程同步的,即线程安全,Vector 类的操作方法带有 synchronized,例:在开发中,需要线程同步安全时,考虑使用 VectorVector 底层代码package collection_;import java.util.Iterator;import java.util.Vector;/** * @Author: Gin * @Description:原创 2021-09-16 17:05:54 · 156 阅读 · 0 评论 -
集合—— ArrayList【底层代码】
ArrayList 注意事项允许添加任何元素,包括 null,ArrayList 可以加入多个nullArrayList 是由数组来实现数据存储的ArrayList 基本等同于 Vector,除了 ArrayList 是线程不安全(执行效率高)看源码,在多线程情况下,不建议使用 ArrayList package collection_;import java.util.ArrayList;/** * @Author: Gin * @Description: * @Mod原创 2021-09-16 14:58:33 · 145 阅读 · 0 评论 -
集合—— List 接口
List 接口基本介绍List 集合类中元素有序(即添加顺序和取出顺序一致)、且可重复List 集合中的每个元素都有其对应的顺序索引,即支持索引List 接口的常用方法void add(int index, Object ele):在 index 位置插入 ele 元素boolean addAll(int index, Collection eles):从 index 位置开始将 eles 中的所有元素添加进来Object get(int index):获取指定 index 位置的元素i原创 2021-09-16 09:56:24 · 105 阅读 · 0 评论 -
集合——集合的分类、常用方法、遍历
基本介绍集合主要是两种(单列集合,双列集合)Collection 接口有两个重要的子接口 List、Set,他们的实现子类都是单列集合Map 接口的实现子类是双列集合,存放的 K-VCollection 接口实现类的特点public interface Collection<E> extends Iterable<E>Collection 实现子类可以存放多个元素,每个元素可以是 Object有些 Collection 的实现类,有些可以存放重复的元素,有些不原创 2021-09-16 08:41:01 · 196 阅读 · 0 评论