ArrayList&LinkedList&Map&Arrays
Java集合框架
1:集合接口
1.1:Collection接口
Collection接口是构造集合框架的基础。它声明所有类集合都将拥有的核心方法
Boolean add(Object obj) |
将obj加入到调用类集合中,加入返回true 否则 返回 false |
Boolean addAll(Collection c) |
将c中所有元素都加入到类集合中,都加入返回true否则 false |
Void clean() |
从调用类集合中删除所有元素 |
Boolean contains(Object obj) |
如果obj是调用类集合的一个元素,则返回true否则 false |
Boolean containsAll(Collection c) |
如果调用类集合中包含了c中所有元素返回true 否则返回false |
Boolean equals(Object obj) |
如果调用类集合与obj相等,则返回true否则返回false |
Int hashCode() |
返回调用类集合的散列值 |
Iterator iterator() |
返回调用类集合的迭代器 |
Boolean remove(Object obj) |
从调用类集合中删除obj一个实例 成功 返回 true 否则 返回 false |
Boolean removeAll(Collection c) |
从调用类集合中删除c的所有元素,成功 返回 true 否则 返回 false |
Boolean retainAll(Colletion c) |
删除调用集合类中除了包含在c中之外的所有的元素,成果 返回 true 否则 返回 false |
Int size() |
返回调用类集合中元素个数 |
Object[] toArray() |
返回一个数组,该数组包含所有调用类集合中的元素 |
1.2 LIst接口
LIst接口继承了Collection并声明了类集的新特性。使用一个基于零的下标,元素可以通过他们在他们列表中的位置被插入和访问。一个列表可以包含重复元素
Void add(int index,Object obj) |
将obj插入调用列表,插入的位置由index传递,任何已存在的在插入点以及插入点之后的元素将后移 因此元素没有被覆盖 |
Boolean addAll (int index,Collection c) |
将c中的元素插入到调用列表中,插入点的下标由index传递 任何已存在的在插入点以及插入点之后的元素将后移 因此元素没有被覆盖 成功返回 true否则返回false |
Object get(int index) |
返回存储在调用类集内指定下标处的对象 |
Int indexOf(Object obj) |
返回调用列表中obj的第一个实例的下标,如果obj不是类表中的元素,则返回-1 |
Int lastIndexOf(Object obj) |
返回调用列表中obj的最后一个实例的下标,如果obj不是类表中的元素,则返回-1 |
Object remove(int index) |
删除调用列表中index位置的元素并返回删除的元素。删除后,列表被压缩。也就是说,被删除元素后面的元素向前移动 |
Object set(int index,Object obj) |
用obj对调用列表内由index指定的位置进行赋值 |
List subList(int start,int end) |
返回一个列表,该列表包括了调用类表中从start 到 end-1的元素 |
1.3 Set接口
Set接口定义了一个集合。它继承了Collection并说明了不允许重复元素的类集特点,因此试图将重复的元素加到集合中时,add()方法就会返回false
1.4 Queue和Deque接口
Queue<E>接口(E表示复合元素的类型)扩展了Collection接口,定义了一个队列数据结构的操作方式。特点:LIFO后进先出
boolean add(E e) 添加 |
将制定的元素插入队列(如果立即可行并且不会违反容量限制),在成功时返回true,如果当前没有可用的容量,输出IllegalStateException |
Boolean offer(E e) 添加 |
在有容量时,此方法要优于上一个方法,反之,可能无法插入元素,而只是抛出一个异常 |
E remove() 移除 |
获取并移除此队列的头,此方法与poll唯一的不同在于此队列为空时,将抛出一个异常 |
E poll() 移除 |
获取并移除此队列的头,如果此队列为空,则返回null |
E element() 获取 |
获取,但不移除此队列的头,此方法与peek方法不同之处在于,次队列为空时将会抛出一个异常 |
E peek() 获取 |
获取但不移除此队列的头;如果此队列为空时,则返回null |
1.2.1实现LIst接口的类
ArrayList类:ArrayList继承了AbstractList并实现了List接口。ArrayList支持可随需要增长的动态数组,在Java中,标准数组是定长的,而ArrayList是变长,ArrayList的对象以一个初始大小被创建。当超出了它的大小时,可以自动增大,当对象被删除后,就可以自动缩小
LinkedList类: LinkedList的存储方式是链式的,所以每个元素都记录了前一个元素和后一个元素,故插入元素较快 LinkedList是使用指针关联的双向链表,其获取下一个元素的方式是通过指向下一个元素的地址对象(指针) 获取的.
HahSet类:集合不含有相同的元素。
Map:映射接口
除了类集,映射是一个存储关键字和值的关联或者说是关键字/值对应的集合。给定一个关键字,可以得到它对应的值。关键字和值都是对象,每一对关键字/值,叫做一项。关键字必须是唯一的。但是值可以重复。有些映射可以接收null关键字和null值,有的则不行
接口 |
描述 |
Map |
唯一关键字映射到值 |
Map.Entry |
描述映射中的项(关键字/值对),Map内部接口 |
SortedMap |
继承Map以便关键字按升序存储 |
Map中定义的方法
Void clear() |
从映射中删除所有的关键字/值 对 |
boolean containsKey(Object k) |
是否包含该关键字K |
boolean containsValue(Object v) |
是否包含该v值 |
Set entrySet() |
返回包含了映射中的项的集合(Set) |
Boolean isEmpty() |
如果映射是null返回true 否则返回false |
Boolean equals(Object obj) |
如果obj是个Map并包含相同的项则返回true |
Object get(Object k) |
通过k获取到value |
Int hashCode() |
返回映射的散列值 |
Set keySet() |
返回关键字Set集合 |
Object put(Object k,Object v) |
添加 |
Void putAll(Map m) |
将m中的所有项都添加 |
Object remove(Object k) |
删除 |
Int size() |
大小 |
Collection values() |
返回一个包含映射中值的类集 |
Arrays 类:
这个类提供了各种在进行数组运算时很有用的方法。
asList() |
返回一个被数组支持的List |
binarySearch() |
在不同类型的数组中搜素特定值 |
equals() |
比较两个数组是否相同 |
fill() |
用一个指定的值填充数组 |
sort() |
对不同类型的数组排序 |
ArrayList&LinkedList&Map&Arrays的更多相关文章
- paip.提升性能---list,arraylist,vector,linkedlist,map的选用..
paip.提升性能---list,arraylist,vector,linkedlist,map的选用.. arraylist,vector基本一样,但是,vector线程安全的. 作者Attilax ...
- ArrayList LinkedList Vector
ArrayList是基于数组实现的,没有容量的限制. 在删除元素的时候,并不会减少数组的容量大小,可以调用ArrayList的trimeToSize()来缩小数组的容量. ArrayList, Lin ...
- ArrayList, LinkedList, Vector - dudu:史上最详解
ArrayList, LinkedList, Vector - dudu:史上最详解 我们来比较一下ArrayList, LinkedLIst和Vector它们之间的区别.BZ的JDK版本是1.7.0 ...
- Hashtable,HashMap,TreeMap有什么区别?Vector,ArrayList,LinkedList有什么区别?int和Integer有什么区别?
接着上篇继续更新. /*请尊重作者劳动成果,转载请标明原文链接:*/ /*https://www.cnblogs.com/jpcflyer/p/10759447.html* / 题目一:Hashtab ...
- 09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHashSet,TreeSet
09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHas ...
- Java集合--ArrayList,LinkedList性能分析
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308900.html 第1部分 List概括 先回顾一下List的框架图 (01) List 是一个接口 ...
- Java——集合框架之ArrayList,LinkedList,迭代器Iterator
概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...
- ArrayList,LinkedList的对比
ArrayList,LinkedList都是Collection接口的通用实现方式,两者采用了不用的存储策略,用来适应不同场合的需要. 实现方式 ArrayList的内部采用集合的方式存储数据 唯一需 ...
- Vector & ArrayList Hashtable & HashMap ArrayList & LinkedList
1. Vector & ArrayList 1) Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的 ...
随机推荐
- VS 调试
Vs 单步调试 在vs中的单步调试: 调试重要的几个键: F9在当前光标所在的行下断点,如果当前行已经有断点,则取消断点. F5调试状态运行程序,程序执行到有断点的地方会停下来. F10单步执行程序. ...
- IOS第18天(9,核心动画-动画组)
****动画组 // 核心动画都是假象,不能改变layer的真实属性的值// 展示的位置和实际的位置不同.实际位置永远在最开始位置 #import "HMViewController.h&q ...
- windows bat 批处理 !vm 合并快播文件
今天简单的写了一个bat批处理文件 用来处理快播的p2p的文件,一般回事这样的目录 你可以下载如下代码 @echo off for /r %%a in (.) do ( echo %%a cd %%a ...
- windows内核 内存管理
一.几个基本的概念 1.存储器的金字塔结构 存储器从下之上依次是磁盘/flash.DRAM(内存).L2-cache.L1-cache.寄存器,越在上面的存储器访问速度越快,同时价格也越昂贵,每一级都 ...
- Git subtree和Git submodule
git submodule允许其他的仓库指定以一个commit嵌入仓库的子目录. git subtree替代git submodule命令,合并子仓库到项目中的子目录.不用像submodule那样每次 ...
- Mysql查看版本号的五种方式介绍
Mysql查看版本号的五种方式介绍 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-03 一.使用命令行模式进入mysql会看到最开始的提示符;二.命令行中使用status可以看到 ...
- youtube视频下载
开你的电脑,然后打开你的浏览器,浏览器可以是IE.Chrome.Firefox等等 在浏览器中输入这个网址:en.savefrom.net,点击Enter键,进入这个网页: 打开你需要下载的y ...
- 【axc】关于duplicate symbols for architecture x86_64错误的第三种可能及其解决办法
今天分析一下duplicate symbols for architecture x86_64错误 也是困扰我一段时间 不过很幸运 在半个小时内找到了解决方案 百度上对于duplicate sy ...
- CGContextAddCurveToPoint 的深入理解
CGContextAddCurveToPoint 这个函数看上去一般般,仔细琢磨发现不简单,为什么三个点就可以确定一条曲线呢? 网上查了查,小小研究了一下下. 1.关键知识 窃取自 (http://l ...
- LightOj 1278 - Sum of Consecutive Integers(求奇因子的个数)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1278 题意:给你一个数n(n<=10^14),然后问n能用几个连续的数表示; 例 ...