Collection接口
Collection接口
清晨叫醒我
这个作者很懒,什么都没留下…
展开
-
TreeSet的使用和底层原理
TreeSet的使用和底层原理TreeSet的底层TreeSet和Comparable接口的使用Comparable接口的实现TreeSet的使用使用TreeSet的要点TreeSet的底层TreeSet底层实际是用TreeMap实现的,内部维持了一个简化版的TreeMap,通过key来存储Set的元素。 TreeSet内部需要对存储的元素进行排序,因此,我们对应的类需要实现Comparable接口。这样,才能根据compareTo()方法比较对象之间的大小,才能进行内部排序。TreeSet和Comp原创 2020-11-05 19:28:22 · 1819 阅读 · 0 评论 -
容器的接口层次结构图
容器的接口层次结构图原创 2020-11-03 17:16:36 · 210 阅读 · 0 评论 -
Set接口_手工实现HashSet
Set接口Set的使用Set接口继承自Collection,Set接口中没有新增方法,方法和Collection保持完全一致。我们在前面通过List学习的方法,在Set中仍然适用。因此,学习Set的使用将没有任何难度。Set容器的特点Set容器特点:无序、不可重复。无序指Set中的元素没有索引,我们只能遍历查找;不可重复指不允许加入重复的元素。更确切地讲,新元素如果和Set中某个元素通过equals()方法对比为true,则不能加入;甚至,Set中也只能放入一个null元素,不能多个。Set常用的原创 2020-11-03 17:13:18 · 68 阅读 · 0 评论 -
Vector向量
Vector向量Vector底层是用数组实现的List,与ArrayList不同的是,相关方法都加了同步检查,因此,“线程安全,效率低”如:indexOf方法就增加了synchronize同步标记如何选用Vector,LinkedList,ArrayList1.需要线程安全时——Vector2.不考虑线程安全,查找操作较多时——ArrayList3.不考虑线程安全,增删操作较多时——LinkedList...原创 2020-11-02 13:18:26 · 125 阅读 · 0 评论 -
手工实现LinkedList5_完善_增加泛型_进行小封装
手工实现LinkedList_完善_增加泛型_进行小封装public class SxtLinkedList05 <E>{ private Node first; private Node last; private int size; public void add(E element) { Node n1 = new Node(element); if(first==null) { first=n1; last=n1; }else { n1.previ原创 2020-11-01 22:20:17 · 51 阅读 · 0 评论 -
手工实现LinkedList4_在指定位置插入节点
手工实现LinkedList_在指定位置插入节点public class SxtLinkedList04 { private Node first; private Node last; private int size; public void add(Object obj) { Node n1 = new Node(obj); if(first==null) { first=n1; last=n1; }else { n1.previous=last; las原创 2020-11-01 22:17:57 · 578 阅读 · 0 评论 -
手工实现LinkedList3_remove移除节点_getNode方法
手工实现LinkedList3_remove移除节点_getNode方法public class SxtLinkedList03 { private Node first; private Node last; private int size; public void add(Object obj) { Node n1 = new Node(obj); if(first==null) { first=n1; last=n1; }else { n1.previous=原创 2020-11-01 22:15:52 · 104 阅读 · 0 评论 -
手工实现LinkedList2_get查询_节点遍历
手工实现LinkedList2_get查询_节点遍历public class SxtLinkedList02 { private Node first; private Node last; private int size; public void add(Object obj) { Node n1 = new Node(obj); if(first==null) { first=n1; last=n1; }else { n1.previous=last; l原创 2020-11-01 22:13:32 · 61 阅读 · 0 评论 -
手工实现LinkedList_节点概念_add方法
手工实现LinkedList_节点概念_add方法自定义链表public class SxtLinkedList { private Node first; private Node last; private int size; public void add(Object obj) { Node n1 = new Node(obj); if(first==null) { first=n1; last=n1; }else { n1.previous=last;原创 2020-11-01 22:10:15 · 63 阅读 · 0 评论 -
LinkedList特点
LinkedList特点和底层实现LinkedList的特点和存储结构LinkedList底层用双向链表实现存储特点:增删效率高,查询效率低,线程不安全双向链表也叫双链表,是链表的一种,它的每个数据节点都有两个指针,分别指向前一个节点和后一个节点。LinkedList的存储结构图节点类的内容class Node{ Node previous;//指向前一个节点 Node next;//指向后一个节点 Object element;//本节点所存放数据}...原创 2020-11-01 22:02:30 · 2050 阅读 · 0 评论 -
手工实现ArrayList4(增加remove移除方法)
手工实现ArrayList4(增加remove移除方法)public class SxtArrayList05<E> { private Object[] elementData; private int size; public static final int DEFAULT_CAPACITY=10; public SxtArrayList05() { elementData = new Object[DEFAULT_CAPACITY]; } public SxtArray原创 2020-10-31 17:28:08 · 107 阅读 · 0 评论 -
手工实现ArrayList3(增加set,get以及索引越界检查)
手工实现ArrayList3(增加set,get以及索引越界检查)public class SxtArrayList04 <E>{ private Object[] elementData; private int size; public static final int DEFAULT_CAPACITY=10; public SxtArrayList04() { elementData = new Object[DEFAULT_CAPACITY]; } public Sxt原创 2020-10-31 17:25:44 · 86 阅读 · 0 评论 -
手工实现ArrayList2(增加数组扩容方法)
手工实现ArrayList2(数组扩容)public class SxtArrayList03 <E>{ private Object[] elementData; private int size; public static final int DEFAULT_CAPACITY=10; public SxtArrayList03() { elementData = new Object[DEFAULT_CAPACITY]; } public SxtArrayList03(i原创 2020-10-31 17:19:50 · 762 阅读 · 0 评论 -
手工实现ArrayList(最简化方式)
手工实现ArrayList(最简化方式,增加泛型)public class SxtArrayList <E>{ private Object[] elementData; private int size; public static final int DEFAULT_CAPACITY=10; public SxtArrayList() { elementData = new Object[DEFAULT_CAPACITY]; } public SxtArrayList(in原创 2020-10-31 17:17:07 · 121 阅读 · 0 评论 -
List的特点和常用方法
List的特点和常用方法List的特点List的用法List的特点List是有序,可重复的有序: List每个元素都有索引标记,可根据元素的索引标记访问元素.可重复:List允许加入重复的元素.List的用法List接口中定义的方法List接口常用的三个实现类:ArrayList,LinkedList,Vector public static void main(String[] args) { //List接口常用的实现类有ArrayList,LinkedList和Vector原创 2020-10-28 20:14:01 · 715 阅读 · 0 评论