JAVA基础
阿萨德执行
这个作者很懒,什么都没留下…
展开
-
JAVA基础-集合-18之 Iterator和Enumeration比较
第1部分 Iterator和Enumeration区别在Java集合中,我们通常都通过 “Iterator(迭代器)” 或 “Enumeration(枚举类)” 去遍历集合。今天,我们就一起学习一下它们之间到底有什么区别。我们先看看 Enumeration.java 和 Iterator.java的源码,再说它们的区别。Enumeration是一个接口,它的源码如下package...原创 2020-03-25 10:47:56 · 98 阅读 · 0 评论 -
JAVA基础-集合-17.TreeSet
第1部分 TreeSet介绍TreeSet简介TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。它继承于AbstractSet抽象类,实现了NavigableSet<E>, Cloneable, java.io.Serializable接口。TreeSet 继承于AbstractSet,所以它是一个Set集合,具有Set的属性和方法。TreeSet 实现了N...原创 2020-03-18 10:36:52 · 643 阅读 · 0 评论 -
JAVA基础-集合-16.HashSet
第1部分 HashSet介绍HashSet 简介HashSet 是一个没有重复元素的集合。它是由HashMap实现的,不保证元素的顺序,而且HashSet允许使用 null 元素。HashSet是非同步的。如果多个线程同时访问一个哈希 set,而其中至少一个线程修改了该 set,那么它必须 保持外部同步。这通常是通过对自然封装该 set 的对象执行同步操作来完成的。如果不存在这样的对象...原创 2020-03-18 10:28:31 · 94 阅读 · 0 评论 -
JAVA基础-集合-15.Set架构
前面,我们已经系统的对List和Map进行了学习。接下来,我们开始可以学习Set。相信经过Map的了解之后,学习Set会容易很多。毕竟,Set的实现类都是基于Map来实现的(HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)。首先,我们看看Set架构。(01) Set 是继承于Collection的接口。它是一个不允许有重复元素的集合。(02) Ab...原创 2020-03-17 11:35:06 · 85 阅读 · 0 评论 -
JAVA基础-集合-14.Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
概要学完了Map的全部内容,我们再回头开开Map的框架图。第1部分 Map概括Map 是“键值对”映射的抽象接口。 AbstractMap 实现了Map中的绝大部分函数接口。它减少了“Map的实现类”的重复编码。 SortedMap 有序的“键值对”映射接口。 NavigableMap 是继承于SortedMap的,支持导航函数的接口。 HashMap, Hashtable...原创 2020-03-17 11:20:59 · 176 阅读 · 0 评论 -
JAVA基础-集合-13.WeakHashMap介绍
第1部分 WeakHashMap介绍WeakHashMap简介 WeakHashMap 继承于AbstractMap,实现了Map接口。 和HashMap一样,WeakHashMap 也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以是null。 不过WeakHashMap的键是“弱键”。在 WeakHashMap 中,当某个键不再正常使...原创 2020-03-17 09:53:35 · 103 阅读 · 0 评论 -
JAVA基础-集合-12.TreeMap介绍
第1部分 TreeMap介绍TreeMap 简介TreeMap 简介TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。TreeMap继承于AbstractMap,所以它是一个Map,即一个key-value集合。TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。TreeMap 实现了Cloneab...原创 2020-03-16 21:43:29 · 202 阅读 · 0 评论 -
JAVA基础-ArrayList倒数第二个元素 for each 删除,没有快速失败
for each过程1)在使用For-Each快速遍历时,ArrayList内部创建了一个内部迭代器iterator,使用的是hasNext和next()方法来判断和取下一个元素。2)ArrayList里还保存了一个变量modCount,用来记录List修改的次数,而iterator保存了一个expectedModCount来表示期望的修改次数,在每个操作前都会判断两者值是否一样,不一样则...原创 2020-03-11 15:28:34 · 1151 阅读 · 0 评论 -
JAVA基础-集合-11.HashTable介绍
1、Hashtable介绍Hashtable 简介和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。Hashtable继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null...原创 2020-01-10 13:37:59 · 109 阅读 · 0 评论 -
JAVA基础-集合-10.HashMap介绍
1、HashMap介绍HashMap简介HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。...原创 2020-01-09 14:30:12 · 93 阅读 · 0 评论 -
JAVA基础-集合-9.Map架构
1、概要前面,我们已经系统的对List进行了学习。接下来,我们先学习Map,然后再学习Set;因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)。首先,我们看看Map架构。如上图:(01) Map 是映射接口,Map中存储的内容是键值对(key-value)。 (02) AbstractMa...原创 2020-01-09 11:46:43 · 87 阅读 · 0 评论 -
JAVA基础-集合-8.List总结
1、List概括List 是一个接口,它继承于Collection的接口。它代表着有序的队列。 AbstractList 是一个抽象类,它继承于AbstractCollection。AbstractList实现List接口中除size()、get(int location)之外的函数。 AbstractSequentialList 是一个抽象类,它继承于AbstractList。Abs...原创 2020-01-09 11:13:04 · 121 阅读 · 1 评论 -
JAVA基础-集合-7.Stack介绍
1、Stack介绍Stack简介Stack是栈。它的特性是:先进后出(FILO, First In Last Out)。java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现的,这就意味着,Stack也是通过数组实现的,而非链表。当然,我们也可以将LinkedList当作栈来使用!Stack的继承关系java.lang.Object↳...原创 2020-01-09 11:09:31 · 106 阅读 · 0 评论 -
JAVA基础-集合-6.Vector详细介绍
1、Vector介绍Vector简介Vector 是矢量队列,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。Vector 继承了AbstractList,实现了List;所以,它是一个队列,支持相关的添加、删除、修改、遍历等功能。Vector 实现了RandmoAccess接口,即提供了随机访问功...原创 2020-01-09 11:01:02 · 138 阅读 · 0 评论 -
JAVA基础-集合-5.LinkedList详细介绍
1、LinkedList介绍LinkedList简介LinkedList是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。 LinkedList实现List接口,能对它进行队列操作。 LinkedList实现Deque接口,即能将LinkedList当作双端队列使用。 LinkedList实现了Clonea...原创 2020-01-09 10:46:07 · 126 阅读 · 0 评论 -
JAVA基础-集合-4.ArrayList快速失败机制
1、 fail-fast简介概念:在使用迭代器对集合对象进行遍历的时候,如果 A 线程正在对集合进行遍历,此时 B 线程对集合进行修改(增加、删除、修改),或者 A 线程在遍历过程中对集合进行修改,都会导致 A 线程抛出 ConcurrentModificationException 异常。快速失败相对于安全失败:安全失败概念:采用安全失败机制的集合容器,在遍历时不是直接在集合内容...原创 2019-11-26 18:01:01 · 1214 阅读 · 1 评论 -
JAVA基础-集合-3.ArrayList简析
1、ArrayList介绍ArrayList简介ArrayList 是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。 ArrayList继承了AbstractList,实现了List。它是一个数组队列,提供...原创 2019-11-26 15:46:45 · 292 阅读 · 0 评论 -
JAVA基础-集合-2.Collection架构
概要首先,我们对Collection进行说明。下面先看看Collection的一些框架类的关系图:Collection是一个接口,它主要的两个分支是:List和Set。List和Set都是接口,它们继承于Collection。List是有序的队列,List中可以有重复的元素;而Set是数学概念中的集合,Set中没有重复元素!List和Set都有它们各自的实现类。为了方...原创 2019-11-21 18:37:33 · 62 阅读 · 0 评论 -
JAVA基础-集合-1.总体框架
该系列转载自:https://www.cnblogs.com/skywang12345/p/3323085.htmlJava集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、A...原创 2019-11-21 18:00:54 · 80 阅读 · 0 评论