JAVA集合必须掌握
文章平均质量分 79
昱晟168
广东湛江
展开
-
Collections工具类基本介绍和使用
Collections工具类基本介绍:Collections 是一个操作Set List 和 Map等集合的工具类Collections 中提供一系静态的方法对集合元素进行排序 , 查询和修改等操作常用方法【均为static方法】排序操作1. reverse(List):反转List中元素的顺序2. shuffle(List):对List集合元素进行随机排序3. sort(List):根据元素的自然顺序对指定List集合元素按升序排序4. sort(List,Com原创 2022-03-18 11:55:27 · 2280 阅读 · 1 评论 -
TreeMap集合基本介绍和源码剖析
TreeMap集合基本介绍:当我们使用无参构造器,创建TreeMap时,仍然是无序的当我们需要按照某种方式进行排序时,需要使用TreeMap提供的一个构造器,可以传入一个比较器【匿名内部类】并指定排序规则继承关系和构造器构造器:Constructor and DescriptionTreeMap() 使用其键的自然排序构造一个新的空树状图。TreeMap(Comparator<? super K> comparator) 构造一个新的,空的树图,按照给定原创 2022-03-18 11:53:41 · 152 阅读 · 0 评论 -
Properties集合基本介绍和使用
Map接口实现类Properties【重点】基本介绍:Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存数据它使用特点和Hashtable类似Properties是Hashtable的子类所以键值都不可以存放null值,否则会报空指针异常Properties可以有相同的key,则原先的value值也会被替换掉Properties还可以用于从xxx.properties文件中,加载数据到Properties类对象,并进行读取和修改说明:工作中x原创 2022-03-18 11:42:48 · 577 阅读 · 0 评论 -
Hashtable集合基本介绍和源码剖析
Hashtable的基本介绍存放的元素是键值对象:即K-VHashtable的键和值都不能存放null,否则会报空指针异常Hashtable使用方法基本上和HashMap一样Hashtable是线程安全的,HashMap是线程不安全的扩容机制是以2倍再加1的方式进行扩容int newCapacity = (oldCapacity << 1) + 1;构造器常用方法Modifier and TypeMethod and Descriptionvoid原创 2022-03-18 11:40:23 · 319 阅读 · 0 评论 -
HashMap集合基本介绍和底层源码剖析
HashMap底层机制及源码剖析HashMap类继承关系和构造器构造器Constructor and DescriptionHashMap() 构造一个空的 HashMap ,默认初始容量(16)和默认负载系数(0.75)。HashMap(int initialCapacity) 构造一个空的 HashMap具有指定的初始容量和默认负载因子(0.75)。HashMap(int initialCapacity, float loadFactor) 构造一个空的 Ha原创 2022-03-18 10:51:20 · 456 阅读 · 0 评论 -
Map集合基本介绍和方法解析
Map接口 和 常用方法Map接口实现类的特点注意:这里讲的是jdk8的Map接口特点【必须掌握背下】Map与Collection并列存在。用于保存具有映射关系的数据:Key_Valeu双列元素Map中的Key和Value可以是任何引用类型的数据,会封装到HashMap$Node对象中Map中的key不允许重复,原因和HashSet一样,当有相同的Key时,会替换掉原来的key-valueMap中的Value可以重复Map的key可以为null,value也可以为nul原创 2022-03-17 21:33:18 · 743 阅读 · 0 评论 -
TreeSet基本介绍和源码剖析
TreeSet集合继承关系图和构造器基本介绍:当我们使用无参构造器,创建TreeSet时,仍然是无序的当我们需要按照某种方式进行排序时,需要使用TreeSet提供的一个构造器,可以传入一个比较器【匿名内部类】并指定排序规则TreeSet构造器Constructor and DescriptionTreeSet() 构造一个新的,空的树组,根据其元素的自然排序进行排序。 【也就是相当于无序的】TreeSet(Collection<? extends E> c原创 2022-03-17 21:27:24 · 475 阅读 · 0 评论 -
LinkedHashSet基本介绍和源码剖析
LinkedHashSet的全面说明LinkedHashSet是HashSet的子类LinkedHashSet底层是一个LinkedHashMap,底层维护了一个数组+双向链表LinkedHashSet根据元素的hashCOde值来决定元素的存储位置,同时使用链表维护元素的次序,这使元素看起来以插入顺序保存的LinkedHashSet不允许添加重复元素注意是由于底层维护着是一个双向链表和数组,所以插入和取出的顺序是一致的,原因是用了链表维护元素添加的顺序继承关系图:构造器Co原创 2022-03-17 20:49:08 · 1259 阅读 · 0 评论 -
HashSet基本介绍和源码剖析
HashSet的全面说明继承关系图构造器Constructor and DescriptionHashSet() 构造一个新的空集合; 背景HashMap实例具有默认初始容量(16)和负载因子(0.75)。HashSet(Collection<? extends E> c) 构造一个包含指定集合中的元素的新集合。HashSet(int initialCapacity) 构造一个新的空集合; 背景HashMap实例具有指定的初始容量和默认负载因子(0原创 2022-03-17 18:25:59 · 876 阅读 · 0 评论 -
LinedLIs集合源码剖析及与ArrayList集合比较
LinkedList底层结构LinkedList的全面说明:LinkedList底层实现了双向链表和双端队列特点可以添加任意元素【元素可以重复】,包括null线程不安全,没有实现同步LinkedList的底层操作机制LinkedList底层维护了一个双向链表LinkedList中维护了两个属性first和last分别指向 首节点 和 尾节点每个节点(Node对象),里面又维护了prev next item三个属性,其中通过prev指向前一个,通过next指向后一个节点,最终实现原创 2022-03-17 11:57:22 · 122 阅读 · 0 评论 -
Vector底层结构和源码剖析及ArrayList和Vector比较
Vector``底层结构和源码剖析Vector的基本介绍:继承关系图和构造器构造器Constructor and DescriptionVector() 构造一个空向量,使其内部数据数组的大小为 10 ,标准容量增量为零。Vector(Collection<? extends E> c) 构造一个包含指定集合元素的向量,按照集合的迭代器返回的顺序。Vector(int initialCapacity) 构造具有指定初始容量并且其容量增量等于零的空向量原创 2022-03-16 21:43:29 · 135 阅读 · 0 评论 -
ArrayList集合基本介绍和底层源码分析
ArrayList底层结构和源码分析ArrayList继承关系图和构造器构造器Constructor and DescriptionArrayList() 构造一个初始容量为十的空列表。ArrayList(Collection<? extends E> c) 构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序。ArrayList(int initialCapacity) 构造具有指定初始容量的空列表。常用方法boolea原创 2022-03-15 21:38:54 · 350 阅读 · 0 评论 -
List接口基本介绍和常用方法理解
List接口和常见方法List接口基本介绍:List集合类中元素有序【即添加顺序和取出顺序一致】并且可以重复List集合中的每个元素都有其对应的顺序索引,即支持索引List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素List接口实现类package collection_.collectionP.list_;import java.util.ArrayList;/** * @author: 海康 * @version: 1.0 */p原创 2022-03-11 21:48:24 · 875 阅读 · 0 评论 -
JAVA集合继承关系图介绍和Collection接口深刻理解
集合【必须掌握】集合引出:由于前面我们保存数据使用的是数组,那么数组不足的地方,我们分析如下:长度开始时必须指定,而且一旦指定,不能更改保存的必须为同一类型的元素使用数组进行增加、删除元素时比较麻烦写出Person数组扩容示意代码:Person[] persons = new Person[1];//大小是1persons[0] = new Person();//增加新的Person对象Person[] persons2 = new Person[persons.length+原创 2022-03-11 20:50:15 · 2212 阅读 · 1 评论