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. as关键词还有另外一个用途,那就是修改 方法 的访问控制

    PHP是单继承的语言,在PHP 5.4 Traits出现之前,PHP的类无法同时从两个基类继承属性或方法.php的Traits和Go语言的组合功能类似,通过在类中使用use关键字声明要组合的Trait ...

  2. 【iCore3 双核心板_ uC/OS-III】例程二:任务的建立与删除

    实验指导书及代码包下载: http://pan.baidu.com/s/1bD7ulK iCore3 购买链接: https://item.taobao.com/item.htm?id=5242294 ...

  3. EL表达式Expression Language

    表达式语言Expression Language目的:简化jsp代码 EL内置对象 1.pageContext2.pageScope3.requestScope4.sessionScope5.appl ...

  4. A trip through the Graphics Pipeline 2011_09_Pixel processing – “join phase”

    Welcome back!    This post deals with the second half of pixel processing, the “join phase”. The pre ...

  5. HDFS的概念

    1.数据块 每个磁盘都有默认的数据块大小,这是磁盘进行数据读/写的最小单位.构建于单个磁盘之上的文件系统通过磁盘块来管理该文件系统中的块,该文件系统块的大小可以是磁盘块的整数倍.文件系统快一半为几千字 ...

  6. ios开发xcode中设置代码块

    在开发中有很多重复的代码,很多开发者把常用的代码做成代码块提高开发效率. 在xcode里选中代码块的时候总是很不容易,点击选中的代码(文字),不要移动和松开鼠标左键,当竖线变成像拉长了的x(我也不知道 ...

  7. iOS沙盒目录

    出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致. 一.沙盒中 ...

  8. XSS检测工具 X5S/fiddler

    x5s http://xss.codeplex.com/ 5s是fiddler的插件, 协助XSS脚本攻击的穿刺性测试.  需要手动驱动. 安全编码,unicode字符变形,ut-8编码. 5s is ...

  9. jq 页面延时刷新

    最常用的方法 <script language='javascript' type='text/javascript'> $(function () { setTimeout(functi ...

  10. Eclipse定制右键创建文件快捷菜单

    打开窗口“Customize Perspective - Java EE”,切换选项卡到“Shortcuts”: 进行一下配置: “Generate”:如上图勾选方式 "Java" ...