[疯狂Java]集合:IdentityHashMap、EnumMap

1. IdentityHashMap:     1) 是一种特殊的HashMap,还是用key的hashCode来决定entry的槽位,但是不用key的equals方法来决定是否相等了,而是默认使用地址(即使实现了equals,equals也不起作用)来决定是否相等了!     2) 所以叫做Id...

2016-05-31 21:54:24

阅读数 529

评论数 0

[疯狂Java]集合:SortedMap、TreeMap、equals/compareTo的标准写法

1. SortedMap的实现类——TreeMap:     1) 就像SortedSet的实现类TreeSet一样,TreeMap的数据结构完全和SortedSet一样,用红黑树实现;     2) TreeMap和TreeSet比较之后的特点就是:          i. 是根据Entr...

2016-05-31 21:00:43

阅读数 3378

评论数 0

[疯狂Java]集合:HashMap、Hashtable(摒弃)、LinkedHashMap、Properties

1. Map最常用的实现类——HashMap:     1) Map最常见的实现类就和Set最常见的实现类一样都是用哈希表这种数据结构存放数据,它有两个这样的实现类,一个是HashMap,另一个是Hashtable;     2) Hashtable在Java 1.0就存在了,非常古老,命名也...

2016-05-31 14:29:34

阅读数 707

评论数 0

[疯狂Java]集合:Map

1. Map简介:     1) 首先Map和Collection在一个层级上,都是抽象集合接口,表示字典(存放键值对的集合,其中键不能重复(是键值对的唯一标识));     2) 但是Map的实现类有HashMap、LinkedHashMap、SortedMap、TreeMap、EnumMa...

2016-05-29 15:35:51

阅读数 496

评论数 0

[疯狂Java]集合:Deque(双端队列)以及两个实现(ArrayDeque、LinkedList)、Stack(摒弃)、各线性表性能分析

1. Deque:     1) 是Queue的子接口,表示双端队列,即两端(队尾和队首)都能插入和删除的特殊队列;     2) 当然,Deque可以使用Queue的全部方法,但是自己也扩展了很多方法,主要用于操作两个端口的:特点就是Queue的每种方法都多了一个操作队尾的版本(同时也提供了一个...

2016-05-29 09:24:18

阅读数 7403

评论数 1

[疯狂Java]集合:Queue、PriorityQueue

1. Queue:     1) Java专门提供的一种表示队列的数据结构,直接继承自Collection,也是一种抽象接口;     2) 其有很多形式的实现类:PriorityQueue(堆,即优先队列,时刻保持堆序)、Deque(双端队列,队列两头都可插拔)、ArrayDeque(用数组实现...

2016-05-28 15:27:01

阅读数 580

评论数 0

[疯狂Java]集合:ArrayList、Vector(摒弃)、Arrays.ArrayList(只读、不可变长)

1. List的实现类:     1) 最常见的两个实现类分别是ArrayList(用数组实现)、LinkedList(链表实现),但由于LinkedList具有双端队列的特性因此这里先不介绍LinkedList;     2) 早期List的实现类是Vector(也是用数组实现的),但是Vect...

2016-05-28 14:52:59

阅读数 8459

评论数 0

[疯狂Java]集合:List、ListIterator

1. Java的List集合简介:     1) List是一个抽象接口,其代表了一种有序(插入顺序)、可重复的集合,简单地来看完全可以当成一个可变长的数组;     2) 它有不同的实现类:ArrayList/Vector(从名称上看就是用数组实现的)、LinkedList(很明显使用链表实现的...

2016-05-28 11:23:45

阅读数 628

评论数 0

[疯狂Java]集合:EnumSet、各Set性能分析(选择)

1. EnumSet——专门存放枚举类型元素的Set:     1) EnumSet只能存放一种枚举类型的元素,具体存放什么枚举类型的元素可以通过两种方法指定,一种是显式,一种是隐式;     2) 一旦元素的枚举类型确定那么集合就确定了(即只能存放该种枚举类型的元素,不能同时存放多种枚举类型的元...

2016-05-27 15:41:02

阅读数 1761

评论数 0

[疯狂Java]集合:SortedSet、TreeSet

1. SortedSet:     1) 顾名思义就是有序的Set,但是它的有序和LinkedHashSet不一样,LinkedHashSet维护的是插入时的顺序,而SortedSet维护的是元素之间大小关系的顺序(比如升序、降序等,是根据大小关系来维护顺序的);     2) 这种维护是时刻维护...

2016-05-27 13:09:05

阅读数 4861

评论数 0

[疯狂Java]集合:Set、HashSet、LinkedHashSet

1. Set:     1) Set其实就是Collection,它几乎没有扩展Collection的任何功能(没有在Collection的基础上添加任何额外的方法);     2) 只不过Set的add方法要求添加的元素不能重复,如果重复则添加失败返回false; 2. HashS...

2016-05-24 16:21:57

阅读数 907

评论数 0

[疯狂Java]集合:专门用于聚集操作的一次性集合——Stream(流)

1. Java 8新增的Stream特殊集合:     1) Stream,即流,和之前讲过的I/O流并非一种流,是一种特殊的有序、可重复集合,可以往流中放很多元素; !!它不属于Collection、Map体系,但是Collection可以转化成Stream;     2) 它的特殊之处在...

2016-05-24 11:16:54

阅读数 4703

评论数 0

[疯狂Java]集合:Collection的迭代器Iterator、使用Predicate筛选集合中的元素

1. Iterator——迭代器:     1) 和C++中迭代器的概念一样,二要素:          i. 迭代器必定从属于某个容器,其作用就是用来遍历所属容器中的元素的!          ii. 迭代器是在容器的数据视图之上进行迭代,因此不能再迭代过程中修改容器中的数据,否则会抛出异...

2016-05-23 21:36:02

阅读数 5724

评论数 1

[疯狂Java]集合:Java集合框架、Collection、forEach遍历器/Consumer函数接口、forEach遍历集合

1. Java集合框架:     1) Java中集合就是用来存放多个元素的数据结构,可能你会想到数组也可以存放多个元素,但是数组可以保存基本类型,而Java的集合只能保存引用类型数据!!     2) Java将集合分成两大类,一类是具有关联关系的集合(即映射关系,以Map为代表的根接口),另一...

2016-05-23 14:45:52

阅读数 3097

评论数 0

[疯狂Java]基础类库:BigDecimal(精确实数)

1. BigDecimal简介:     1) 用Java的基础类型来表示数据还是有一定的局限性的:          i. 对于整型最明显的就是存在界限问题,由于使用有限位二进制数来表示整型,必定存在上下限,不能表示更大范围的数了;          ii. 对于浮点型就不用说了,根本无法精确表...

2016-05-22 16:14:30

阅读数 814

评论数 0

[疯狂Java]基础类库:Random(随机数生成)、ThreadLocalRandom(线程安全随机数生成)

1. Random类的使用方法:     1) 和其它语言一样,Java的Random其实也是一个为随机序列生成器,同样需要一个序列种子作为序列的开关,如果种子相同则产生的序列相同;     2) 构造器:Random([long seed]);  // 无参则默认使用当前时间作为序列种子!省去了...

2016-05-22 14:18:56

阅读数 4237

评论数 1

[疯狂Java]基础类库:StringBuilder/StringBuffer

1. 两者的区别:     1) 两者功能上完全一样,两者包含的方法也一模一样,只不过Builder是线程不安全的,而Buffer是线程安全的;     2) 由于Builder适用于单线程,因此Builder效率要明显高于Buffer,因此一般单线程的应用首选Builder;     3)...

2016-05-20 14:56:58

阅读数 450

评论数 0

[疯狂Java]基础类库:String

1. Java字符串对象:     1) Java提供了三种字符串类型:String、StringBuilder、StringBuffer;     2) 其中String是不可变类型,即一旦初始化后其内容不可改变,后两种是可变类型,专门用来对字符串进行修改;     3) 后两者的区别就是Str...

2016-05-20 10:49:27

阅读数 493

评论数 0

[疯狂Java]基础类库:Object、深拷贝、Objects工具类

1. Object类简介:     1) 是Java所有类型的基类,如果一个自定义的类没有extends显示指定其父类则它默认继承Object类;     2) 常用方法(通常需要根据需求覆盖,Object本身对它们的定义极其简单):          i. 相等判断: public boolea...

2016-05-19 16:57:15

阅读数 3253

评论数 0

[疯狂Java]基础类库:Runtime(运行时信息)

1. Runtime类简介:     1) 代表Java程序的运行时环境,是和Java程序相关联的,每一个运行起来的Java程序都具有一个自己Runtime对象;     2) 和System一样,Java程序的Runtime对象也是由JVM创建的,用户无法自己创建Runtime对象;   ...

2016-05-18 20:52:53

阅读数 746

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭