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的更多相关文章

  1. paip.提升性能---list,arraylist,vector,linkedlist,map的选用..

    paip.提升性能---list,arraylist,vector,linkedlist,map的选用.. arraylist,vector基本一样,但是,vector线程安全的. 作者Attilax ...

  2. ArrayList LinkedList Vector

    ArrayList是基于数组实现的,没有容量的限制. 在删除元素的时候,并不会减少数组的容量大小,可以调用ArrayList的trimeToSize()来缩小数组的容量. ArrayList, Lin ...

  3. ArrayList, LinkedList, Vector - dudu:史上最详解

    ArrayList, LinkedList, Vector - dudu:史上最详解 我们来比较一下ArrayList, LinkedLIst和Vector它们之间的区别.BZ的JDK版本是1.7.0 ...

  4. Hashtable,HashMap,TreeMap有什么区别?Vector,ArrayList,LinkedList有什么区别?int和Integer有什么区别?

    接着上篇继续更新. /*请尊重作者劳动成果,转载请标明原文链接:*/ /*https://www.cnblogs.com/jpcflyer/p/10759447.html* / 题目一:Hashtab ...

  5. 09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHashSet,TreeSet

    09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHas ...

  6. Java集合--ArrayList,LinkedList性能分析

    转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308900.html 第1部分 List概括 先回顾一下List的框架图 (01) List 是一个接口 ...

  7. Java——集合框架之ArrayList,LinkedList,迭代器Iterator

    概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...

  8. ArrayList,LinkedList的对比

    ArrayList,LinkedList都是Collection接口的通用实现方式,两者采用了不用的存储策略,用来适应不同场合的需要. 实现方式 ArrayList的内部采用集合的方式存储数据 唯一需 ...

  9. Vector & ArrayList Hashtable & HashMap ArrayList & LinkedList

    1. Vector & ArrayList 1)  Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的 ...

随机推荐

  1. VS 调试

    Vs 单步调试 在vs中的单步调试: 调试重要的几个键: F9在当前光标所在的行下断点,如果当前行已经有断点,则取消断点. F5调试状态运行程序,程序执行到有断点的地方会停下来. F10单步执行程序. ...

  2. IOS第18天(9,核心动画-动画组)

    ****动画组 // 核心动画都是假象,不能改变layer的真实属性的值// 展示的位置和实际的位置不同.实际位置永远在最开始位置 #import "HMViewController.h&q ...

  3. windows bat 批处理 !vm 合并快播文件

    今天简单的写了一个bat批处理文件 用来处理快播的p2p的文件,一般回事这样的目录 你可以下载如下代码 @echo off for /r %%a in (.) do ( echo %%a cd %%a ...

  4. windows内核 内存管理

    一.几个基本的概念 1.存储器的金字塔结构 存储器从下之上依次是磁盘/flash.DRAM(内存).L2-cache.L1-cache.寄存器,越在上面的存储器访问速度越快,同时价格也越昂贵,每一级都 ...

  5. Git subtree和Git submodule

    git submodule允许其他的仓库指定以一个commit嵌入仓库的子目录. git subtree替代git submodule命令,合并子仓库到项目中的子目录.不用像submodule那样每次 ...

  6. Mysql查看版本号的五种方式介绍

    Mysql查看版本号的五种方式介绍 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-03   一.使用命令行模式进入mysql会看到最开始的提示符;二.命令行中使用status可以看到 ...

  7. youtube视频下载

    开你的电脑,然后打开你的浏览器,浏览器可以是IE.Chrome.Firefox等等   在浏览器中输入这个网址:en.savefrom.net,点击Enter键,进入这个网页:   打开你需要下载的y ...

  8. 【axc】关于duplicate symbols for architecture x86_64错误的第三种可能及其解决办法

    今天分析一下duplicate symbols for architecture x86_64错误  也是困扰我一段时间   不过很幸运 在半个小时内找到了解决方案 百度上对于duplicate sy ...

  9. CGContextAddCurveToPoint 的深入理解

    CGContextAddCurveToPoint 这个函数看上去一般般,仔细琢磨发现不简单,为什么三个点就可以确定一条曲线呢? 网上查了查,小小研究了一下下. 1.关键知识 窃取自 (http://l ...

  10. LightOj 1278 - Sum of Consecutive Integers(求奇因子的个数)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1278 题意:给你一个数n(n<=10^14),然后问n能用几个连续的数表示; 例 ...