一、前言 这一篇里,我将对HashSet、LinkedHashSet、TreeSet进行汇总分析,并不打算一一进行详细介绍,因为JDK对Set的实现进行了取巧。我们都知道Set不允许出现相同的对象,而Map也同样不允许有两个相同的Key(出现相同的时候,就执行更新操作)。所以Set里的实现实际上是调 ...
分类:
其他好文 时间:
2018-02-04 12:39:46
阅读次数:
199
在设计线程安全类的过程中,需要包含以下三个基本要素: ·找出构成对象状态的所有变量 找出约束变量的不变性条件 建立对象状态的并发访问管理策略 ...
分类:
其他好文 时间:
2018-02-03 19:55:33
阅读次数:
101
题21:包含min函数的栈 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,push及pop的时间复杂度都是O(1). public class Main { public static void main(String[] args){ perm ...
分类:
其他好文 时间:
2018-02-02 20:09:25
阅读次数:
167
我们都知道java是面向对象的语言,数据多了放对象里,那么对象多了放哪里呢?集合或者数组中那么集合和数组有什么区别呢?数组一旦初始化长度是固定的,集合的长度是可变的数组只能存储一种类型的对象和基本数据,集合能存储多种不同类型的对象在平常开发张最常用的集合体系有三种一个是List(ArrayListLinkedListvector)还有一个set(HashSetTreeSet)和map(HashTa
分类:
其他好文 时间:
2018-02-01 13:18:48
阅读次数:
147
b.compareTo(a) 这个函数是比较两个值得大小,如果b比a大,那么返回1 如果小,那么返回-1,相等返回0 如果比较的是字符串,那么比较字典编纂顺序,b靠前返回-1,靠后返回1 这个题的核心虽然是hashtable,但是这个方法还是很重要的,因为自己实现比较字符串很麻烦 ...
分类:
其他好文 时间:
2018-01-24 22:17:53
阅读次数:
756
HashSet和ArrayList的区别是什么? 1.内部实现 ArrayList是以数组来存储数据,看下面的源代码就能得知。 HashSet是用HashMap来储存数据 2.元素存储 ArrayList内部实现为一个数组,它的数据自然就会出现重复的现象。 HashSet内部实现是一个HashMap ...
分类:
编程语言 时间:
2018-01-23 21:15:44
阅读次数:
241
--Set:元素是无序(存入和取出的顺序不一定一致)的,元素不可以重复 --HashSet:底层数据结构是哈希表 --TreeSet:底层数据结构是二叉树。Set集合的功能和Collection是一致的。 往hashSet集合中存入自定义对象,姓名年龄相同者为同一个人,重复元素 --HashSet: ...
分类:
其他好文 时间:
2018-01-23 13:15:47
阅读次数:
171
一、并发集合java.util包下提供了很多的集合类,如ArrayList、TreeSet、HashMap,但是这些集合都是非线程安全的,并且对于单列集合的迭代器,采用的是快速失败机制,当正在迭代遍历的集合被其它线程修改时,便会抛出java.util.ConcurrentModificationException。这显然对于多线程操作的集合是十分不方便的,但早Colections这个工具类中有方法
分类:
编程语言 时间:
2018-01-22 13:03:58
阅读次数:
194
TreeSet的几大特点: 1、TreeSet中存储的类型必须是一致的,不能一下存int,一下又存string 2、TreeSet在遍历集合元素时,是有顺序的【从小到大】(我的理解,如果存的字母,按字典序排列) 3、排序:当向TreeSet中添加自定义对象时,有2种排序方法,1:自然排序 2、定制排 ...
分类:
编程语言 时间:
2018-01-21 19:19:49
阅读次数:
205