List:equals对于List集合(ArrayList、LinkedList等):仅仅是通过判断两个对象的【equals】方法是否为true。以下为 ArrayList 的部分源码:public boolean contains(Object o) { return indexOf(o) >= ... ...
分类:
其他好文 时间:
2018-07-13 20:24:18
阅读次数:
169
要想知道一个元素是否在数组或链表中,只能从前向后挨个对比,无论是数组还是链表,其对数据的查询表现都比较无力。在的二叉排序树中,还会将数据排序以进行二分查找,将时间复杂度从O(n)降低到O(lg n)。 出现这个问题的根源在于,我们没有办法直接根据一个元素找到它存储的位置。 那有没有办法消除这个对比的 ...
分类:
编程语言 时间:
2018-05-30 21:31:45
阅读次数:
192
数组和链表是数据结构中最基本的部分。 数组 在java中,数组定义为一种基本类型,其可以通过下标获取到对应位置的数据。那么这种结构的数据,在内存中是怎么存放的呢? 数组在内存中是一段连续的存储单元,每个数据依次放在每个单元中。 分析这种结构,我们可以得出以下几个结论: 创建一个数组,必须声明其长度, ...
分类:
编程语言 时间:
2018-05-30 21:05:51
阅读次数:
211
ArrayList简介 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一 ...
分类:
编程语言 时间:
2018-05-24 13:56:34
阅读次数:
178
概论学完ArrayList和LinkedList之后,我们接着学习Vector。学习方式还是和之前一样,先对Vector有个整体认识,然后再学习它的源码;最后再通过实例来学会使用它。第1部分Vector介绍Vector简介Vector是矢量队列,它是JDK1.0版本添加的类。继承于AbstractList,实现了List,RandomAccess,Cloneable这些接口。Vector继承了Ab
分类:
编程语言 时间:
2018-05-16 22:18:56
阅读次数:
167
一、自定义了一个ArrayList的模拟集合(源码+详细说明) 前段时间分析了下ArrayList集合的源码,总觉得如果不自己定义一个的话,好像缺了点什么,所以有了如下的代码。 代码可以说是逐行注释了,所以就不做过多的分析了。 自定义集合:MyArrayListDefin.java 运行类:Test ...
分类:
编程语言 时间:
2018-05-13 13:51:52
阅读次数:
213
转载自 http://www.cnblogs.com/zhangyinhua/p/7698642.html#_label0 一,关于HashMap API定义 二,HashMap 的属性 初始容量:哈希表中桶的数量 加载因子:哈希表在其容量自动增加之前可以达到多满的一种尺度 当哈希表中条目数超出了当 ...
分类:
编程语言 时间:
2018-05-10 15:43:20
阅读次数:
203
一、前言 这一篇里,我将对HashSet、LinkedHashSet、TreeSet进行汇总分析,并不打算一一进行详细介绍,因为JDK对Set的实现进行了取巧。我们都知道Set不允许出现相同的对象,而Map也同样不允许有两个相同的Key(出现相同的时候,就执行更新操作)。所以Set里的实现实际上是调 ...
分类:
其他好文 时间:
2018-02-04 12:39:46
阅读次数:
199
一、前言 这次我们来看一下常见的List中的第二个——LinkedList,在前面分析ArrayList的时候,我们提到,LinkedList是链表的结构,其实它跟我们在分析map的时候讲到的LinkedHashMap的结构有一定的相似,但是相对简单很多,今天再详细的看一下它的具体结构,以及使用的场 ...
分类:
其他好文 时间:
2018-01-07 15:58:48
阅读次数:
150
一、HashMap简介 1.1、HashMap概述 HashMap是基于哈希表的Map接口实现的,它存储的是内容是键值对<key,value>映射。此类不保证映射的顺序,假定哈希函数将元素适当的分布在各桶之间,可为基本操作(get和put)提供稳定的性能。 在API中给出了相应的定义: //1、哈希 ...
分类:
编程语言 时间:
2017-10-20 13:22:40
阅读次数:
160