Collections:动态的存放多个对象。长度是可以改变的。两个常用的子接口如下:

集合List:存放的元素有序且允许有重复的集合接口。

List接口常用的实现类有ArrayList、Vector、LinkedList

三者的区别:ArrayList :是使用数组结构实现的List集合,对于使用索引取出元素有较好的效率。但是插入删除的效率较慢。LinkedList是使用双向链表实现的集合,它的访问效率低,但是插入删除效率高。Vector是旧版的ArrayList,它大多数操作跟ArrayList相同,区别之处在于Vector是线程同步(安全的)的。

Set:存放的元素不包含重复的集合接口,根据每个对象的哈希码值用固定的算法算出它的存储索引,把对象存放一个叫散列表的相应位置中,在取对象时根据对象的哈希码值计算出它的存储索引,在散列表的相应位置上的元素间进行少量的比较操作就能找到它。

重复内容是指依据hashCode()和equals()两个方法区分的,它会先比较哈希值,然后再equals()比较。如果哈希值相等,equals返回true,则表示这两个对象是同一个对象。

参考文档JDK API 1.6

Collection接口定义的方法,这些方法被Set和List继承:

int size(); 返回此collection中的元素数

boolean isEmpty(); 判断此collection中是否包含元素。

boolean contains(Object obj); 判断此collection是否包含指定的元素。用集合中的元素依次.equals(传入contains方法的obj)

boolean containsAll(Collection c); 判断此collection是否包含指定 collection中的所有元素

boolean add(Objectelement); 向此collection中添加元素

boolean addAll(Collection c);将指定collection中的所有元素添加到此collection中

boolean remove(Object element); 从此collection中移除指定的元素。

boolean removeAll(Collectionc); 移除此collection中那些也包含在指定 collection 中的所有元素。

void clear(); 移除collection中所有的元素。

booleanretainAll(Collection c); 仅保留此collection中那些也包含在参数指定collection的元素。即从列表中移除未包含在指定 collection 中的所有元素.在调用的对象中只保留交集.如果操作成功,返回true

Iteratoriterator(); 返回在此collection的元素上进行迭代的迭代器。

Object[]toArray(); 把此collection转成数组。

通常使用Colleaction的实现类。比如List<String> list = newArrayList<String>();然后再向集合中添加元素,list.add(“a”);

子接口List中新增的方法,都是针对List的索引操作的:

Object get(intindex) 返回列表中指定位置的元素

Object add(intindex, Object element);指定的位置插入元素。

Objectset(int index, Object element) ;替换指定位置的元素

Objectremove(int index) 删除指定位置的元素

List subList(intfromIndex, int toIndex):返回部分List视图

int indexOf(Object o):元素第一次出现的下标

本文转自 墨宇hz 51CTO博客,原文链接:http://blog.51cto.com/zzhhz/1623554

集合Collections,List相关推荐

  1. Day18JavaSE——Map集合Collections工具类集合案例练习

    Day18JavaSE--Map集合&Collections工具类&集合案例练习 文章目录 Day18JavaSE--Map集合&Collections工具类&集合案例 ...

  2. java(五)-迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类

    day05[迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类] 主要内容 Collection集合的遍历方式: 迭代器. foreach(增强for循环) JDK ...

  3. 集合——Collections

    Collections 1. 概述 注意区别Collection:是单列集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素 由静态方法组成 是针对集合操作的工具类 2. 常用方法 ...

  4. Java集合,Collections

    一:集合的继承关系 数据在底层的存储方式只有两种 一种是顺序存储(也就是存储的数组) 一种是链式存储 注:数组一旦初始化后长度就不可变  Collection接口:方法:                ...

  5. Java中的集合---------Collections 类---集合的工具类 Comparator比较器

    Collections 2.1 常用功能 java.utils.Collections是集合工具类,用来对集合进行操作.部分方法如下: public static <T> boolean ...

  6. Java基础学习系列--(五)【迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类】

    第一章 Iterator迭代器 1.1 Iterator接口 在程序开发中,经常需要遍历集合中的所有元素.针对这种需求,JDK专门提供了一个接口java.util.Iterator. 想要遍历Coll ...

  7. OnJava8读书笔记(java编程思想)--集合Collections

    本篇博文参考on Java8中文版编写 本编博文参考java编程思想第四版编写 文章目录 概述 一.泛型和类型安全的集合 二.基本概念 三.添加元素组(Adding Groups of Element ...

  8. 运用java集合Collections对List进行max和min操作

    我想创建了一个List,里面有一堆的数,一个需求是去掉一个最大值,一个最小值,List有remove的方法,但是找到最大值和最小值的方法不在List里,而是Collections的静态方法.真心觉得还 ...

  9. JAVA的rotate怎么用,Java集合Collections.rotate用法

    函数定义 public static void rotate([List]> list, int distance) 功能描述 按指定距离旋转列表中的元素. PS:个人认为应该叫循环移位比较合适 ...

  10. 黑马程序员_Java(登陆注册案例,set集合,map集合,Collections)

    ------- android培训. java培训.期待与您交流! ---------- 生命不息,奋斗不止!做个斗士!!!!! 1:登录注册案例 需求:用户登录注册案例. 按照如下的操作,可以让我们 ...

最新文章

  1. java读取文件替换字符,跳槽薪资翻倍
  2. java高级----Java动态代理的原理
  3. android怎么根据标题解析json,如何在android中解析没有json对象标题的json数组?
  4. 牛逼!支付宝高级Java三面题目:线程锁+事务+雪崩+Docker等
  5. echart x轴标签偏移_1文搞懂真正的五轴加工中心,到底说的5轴是哪几个轴
  6. 查看Mysql实时执行的Sql语句
  7. 基于阿里云物联网平台实现的简易出入监控
  8. python 画三角函数_如何使用python的matplotlib绘制三角函数的图像
  9. Spring学习笔记之MyBatis
  10. 微信开发者工具下载及调试
  11. NV GTX680对GTX580:另一个视角
  12. 《CSS世界》笔记二:盒模型四大家族
  13. 为什么有的人戒烟,说戒就能戒掉,而大部分人戒了多次戒不掉?
  14. 南和云达计算机,南和县实验中学
  15. The type java.lang.Object cannot be resolved It is indirectly referenced ... .
  16. openMVS深度图计算:DenseReconstruction Estimate之EVTEstimateDepthMap之深度图初始化(patchmatch)
  17. localStorage、sessionStorage 、indexedDB 、websql 、cookie 的区别
  18. 【毕业设计】单片机 图像分类 智能识别机器人 - 物联网 深度学习 AI
  19. Spring Security是什么?(一)
  20. OpenShift 4 - 有关 Operator 相关概念和运维操作

热门文章

  1. [Noi2015]寿司晚宴
  2. C程序之修改Windows的控制台颜色(转载)
  3. 命名空间“Aspose”中不存在类型或命名空间名称“Slides”。
  4. 【原】涉及数据库的单元测试-JTeser
  5. Extjs Ext.net中的常用属性
  6. Aspose.Words.dll根据模板生成word详解
  7. rac备份及恢复的重要概念之一——Redo Threads和Streams
  8. xshell 中使用vim 显示Xmanager运行失败:
  9. 原生js写简单轮播图方式1-从左向右滑动
  10. 【转】android新建项目时 出现appcompat_v7工程错误和红色感叹号