Java集合
森-Js
521
展开
-
表格数据存储
map和list结合存储整张表package sxt.gaoqi.container;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;p...原创 2020-04-14 18:05:54 · 342 阅读 · 0 评论 -
Collections工具类
package sxt.gaoqi.container;import java.util.ArrayList;import java.util.Collections;import java.util.List;/* * Collections辅助类的使用 * Collection是接口,Collections是工具类 */public class TestCollectio...原创 2020-04-14 17:09:44 · 127 阅读 · 0 评论 -
迭代器的使用
通过对List、Set、Map的遍历来了解迭代器的使用package sxt.gaoqi.container;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.List;import j...原创 2020-04-14 12:07:17 · 94 阅读 · 0 评论 -
TreeSet的使用和底层原理
根据源码可知,TreeSet的底层使用到TreeMappackage sxt.gaoqi.container;import java.util.HashMap;import java.util.Map;public class JsHashSet{ Map map; private static final Object PRESENT = new Object();...原创 2020-04-14 09:57:35 · 569 阅读 · 0 评论 -
Set接口
根据hashset的源码可知,其底层是由HashMap来实现的根据源码仿写setpackage sxt.gaoqi.container;import java.util.HashMap;import java.util.Map;public class JsHashSet{ Map map; private static final Object PR...原创 2020-04-14 08:43:49 · 109 阅读 · 0 评论 -
TreeMap使用
package sxt.gaoqi.container;import java.util.Map;import java.util.TreeMap;/* * 测试TreeMap的使用 */public class TestTreeMap{ public static void main(String[] args) { Map<Integer, String>...原创 2020-04-13 21:33:30 · 360 阅读 · 0 评论 -
手工实现HashMap
HashMap底层实现采用了哈希表package sxt.gaoqi.container;/* * put存储键值对 * 解决键重复问题、链表生成问题 * 重写toString方法打印Map内容 * get查找键值对 */public class JsHashMap<K,V>{ Node2[] table; //哈希数组 int size; //...原创 2020-04-13 20:06:54 · 248 阅读 · 0 评论 -
HashMap底层原理
存储键值对底层过程HashMap底层实现采用了哈希表,zh这是一个非常重要的数据结构哈希表的基本结构就是“ 数组 +链表”哈希表结构:HashMap存储键值对的过程查找键值对过程_equals和hashcode取数据过程get(key)JDK8将链表在大于8情况下变为红黑二叉树...原创 2020-04-13 08:49:41 · 140 阅读 · 0 评论 -
Map接口-HashMap常用方法
package sxt.gaoqi.container;import java.util.HashMap;import java.util.Map;public class TestMap{ public static void main(String[] args) { Map<Integer, String> map = new HashMap<>...原创 2020-04-10 18:55:10 · 109 阅读 · 0 评论 -
手工实现LinkedList
集合LinkedList的底层是由链表来实现的,因此可以根据源码仿写个package sxt.gaoqi.container;public class JsLinkedList<E>{ private Node first; private Node last; private int size; public void add(E obj) { N...原创 2020-04-10 14:38:50 · 118 阅读 · 0 评论 -
手工实现ArrayList
ArrayList底层JDK源码解读ArrayList底层是用数组实现的存储。特点:查询效率高。增删效率低,线程不安全。不过一般情况还是使用ArrayListpackage sxt.gaoqi.container;/* * 增加泛型 * 扩容 * get/set方法 * 索引越界RuntimeException * 增加remove */public class...原创 2020-04-10 09:36:24 · 89 阅读 · 0 评论 -
自定义泛型
自定义泛型package sxt.gaoqi.container;public class TestGeneric{ public static void main(String[] args) { MyCollection<String> mc = new MyCollection<String>(); mc.set("久森", 0); ...原创 2020-04-09 17:34:41 · 115 阅读 · 0 评论 -
集合的框架体系图
Java集合可分为Collection和Map两种体系Collection接口(单列集合):Set:元素无序、不可重复的集合 List:元素有序、可重复的集合Map接口(双列集合):具有映射关系“key-value”对的集合...原创 2020-04-09 15:26:46 · 1133 阅读 · 0 评论 -
集合的理解和好处
理解集合就是一种容器,用于保存一组元素集合和数组的对比数组的不足:1、数组的长度必须提前指定,而且一旦指定不能更改2、数组只能保存相同类型的元素集合1、集合在使用时,长度不用指定,而且可以实现自动扩容或截断2、集合没有指定泛型之前,默认保存的是任意类型的元素(Object类型)指定泛型之后,可以保存对应类型的元素示例代码数组:Animal[] an...原创 2020-04-09 13:30:06 · 3243 阅读 · 0 评论