集合使用注意事项: 1.集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中去(JDK5之后会进行自动的装箱和拆箱操作,表面上看集合中是可以直接放置原生数据类型进去,但实质上是进过自动装箱成对象操作的): 2.集合当中放置的都是Object类型,因此取出来的也是Object类型(可以放置任意类型的数据),那么必须要使用强制类型转换将其转换为真正的类型(放置进去的类型). ArrayList ArrayList常用方法: boolean add(E…
前言 在JDK1.7&1.8源码对比分析[集合]HashMap中我们对比分析了JDK1.7和1.8版本的HashMap源码,趁热打铁,这篇文章就来看看JDK1.7和1.8版本的ConcurrentHashMap有哪些区别. 目录 一.对比分析 1. 1.7版本 2. 1.8版本 一.对比分析 1. 1.7版本 先来看看 1.7 的实现,下面是他的结构图: 如上图所示,是由 Segment 数组.HashEntry 组成,和 HashMap 一样,仍然是数组 + 链表. 它的核心成员变量: /**…
前言 在JDK1.8源码分析[集合]HashMap文章中,我们分析了HashMap在JDK1.8中新增的特性(引进了红黑树数据结构),但是为什么要进行这个优化呢?这篇文章我们通过对比JDK1.7和1.8来分析优化的原因. 众所周知,HashMap底层是基于 数组 + 链表 的方式实现的,不过在JDK1.7和1.8中具体实现稍有不同. 目录 一.对比分析 1. 1.7版本 2. 1.8版本 总结 一.对比分析 1. 1.7版本 1.7 中的数据结构图: 先来看看1.7中几个比较核心的成员变量: /…
ArrayList和LinkedList 底层结构 两者的差别主要来自于底层的数据结构不同,ArrayList是基于数组实现的,LinkedList是基于双链表实现的. 接口实现 LinkedList类不仅是List接口的实现类,可以根据索引来随机访问集合中的元素,除此之外,LinkedList还实现了Deque接口,Deque接口是Queue接口的子接口,它代表一个双向队列,因此LinkedList可以作为双向队列 ,栈(可以参见Deque提供的接口方法)和List集合使用,功能强大. 效率性…
HashSet常用方法介绍 public boolean add(E e) public boolean isEmpty() void clear() public Iterator<E> iterator() int size() 详细方法详见JDK帮助文档 Object的equals方法和hashCode方法 1. Object类equals方法的特点: a) 自反性:x.equals(x)应该返回true b) 对称性:x.equels(y)为true,那么y.equals(x)也为tr…
集合: Collection类 package com.collection.demo; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Iterator; /** * 数组: 存储同一类型的元素组成集合,固定长度,数组中元素可以是基本数据,也可以是对象. * 集合: 存储不同类型对象的容器, 长度可变,集合中的元素必须是Object的子类,不能是…
ArrayList 就是数组实现的啦,没什么好说的,如果数组不够了就扩容到原来的1.5倍 实现了迭代器 package com.wenr.collection; import java.io.Serializable; import java.util.Arrays; import java.util.Iterator; import java.util.NoSuchElementException; import java.util.RandomAccess; /** * @author we…
Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 @author Trinea 原文链接:http://www.trinea.cn/android/arraylist-linkedlist-loop-performance/ 主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论.通过本文你可以了解(1)List的五种遍历方式及各…
主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论. 通过本文你可以了解(1)List的五种遍历方式及各自性能 (2)foreach及Iterator的实现 (3)加深对ArrayList和LinkedList实现的了解. 阅读本文前希望你已经了解ArrayList顺序存储和LinkedList链式的结构,本文不对此进行介绍. 相关:HashMap循环遍历方式及其性…
最新最准确内容建议直接访问原文:ArrayList和LinkedList的几种循环遍历方式及性能对比分析 主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论.通过本文你可以了解(1)List的五种遍历方式及各自性能 (2)foreach及Iterator的实现 (3)加深对ArrayList和LinkedList实现的了解.阅读本文前希望你已经了解ArrayList…