2:列表(List)

特点:

(1):有序的(插入的顺序有序),元素有索引值。

(2):同意反复。

set/get/listIterator/subList

ArrayList

特点:(1):底层数组方式实现。

     (2):元素是有序的。

(是指加入进去的元素有序,不是指对象之间的顺序)

     (3):不是线程同步的。

     (4):因为是用数组实现。查找比較快。

循环:

迭代器
For循环

双向迭代器

LinkedList

特点:(1):底层机制链表方式实现。

     (2):元素是有序的。(是指加入进去的元素有序,不是指对象之间的顺序)

     (3):不是线程同步的。

     (4):因为是用链表实现。因此增删改对象比較easy。

查找比較慢。

CopyOnWriteArrayList

特点:(1):底层机制数组方式实现。

     (2):元素是有序的。(是指加入进去的元素有序,不是指对象之间的顺序)

     (3):它是线程同步的。

     (4):因为是用数组实现。因此查找比較快。增删改比較慢。

List中的subList方法

subList也会出现高速失败异常。

解决方法:又一次用subList截取的集合视图构建一个新的List就可以。

List list = new ArrayList();

List list2 = list.subList(3,5);

list.removeAll(list2);

List list = new ArrayList();

List list2 = new ArrayList(list.subList(3,5));

list.removeAll(list2);

Stack(数据结构)

(1):有序的(插入的顺序有序)。元素有索引值。

(2):同意反复。

(3):数据先进后出。

3:映射(Map)

特点:

(1):键值对的数据对象。键不能反复。(键反复的话。后面加入的覆盖前面)

   一个键相应一个值。

HashMap

(1):底层以哈希算法实现

(2):同意一个NULL键。同意多个NULL值。

(3):无序

(4):不是线程同步。

LinkedHashMap

(1):底层以链表算法实现

(2):同意一个NULL键。同意多个NULL值。

(3):有序(加入的顺序有序)

(4):不是线程同步。

存值:put(key,value);

取值: value = get(key)

迭代Map

A:使用KeySet(返回全部键的集合,循环键的集合。取出每个键,再通过键取值)。

B:使用values(返回全部值的集合),仅仅能获取值(值能够反复,所以不能通过值获取键)

C:使用entrySet(返回键值对的集合)。

集合中的每个元素都是一个Map.entry实体对象。

4:队列(Queue)

特点:

(1):与Stack一样,队列是一种数据结构。先进先出的特点。

加入:offer

删除:remove

获取队列元素 poll

单向队列:Queue queue = new LinkedList();

双向队列:LinkedList queue = new LinkedList();//这样双向队列能够操作队首与队尾。

5:老的一些集合框架类

特点:

全部都是线程安全的。

Vector

特点:(1):底层数组方式实现。

     (2):元素是有序的。(是指加入进去的元素有序,不是指对象之间的顺序)
     (3):是线程同步的。
     (4):因为是用数组实现,查找比較快。

HashTable

(1):底层以哈希算法实现
(2):不同意NULL键,不同意NULL值。
(3):无序
(4):线程同步。

Enumeration

老的迭代器。

没有提供remove元素的方法。(因为老集合都是线程安全的).

集合的工具类:

Arrays:用于操作数组的工具类。

对于数组的排序。加入,查找。

Collections:用于操作集合的工具类。对于集合的排序,加入。查找,比較等。

集合之间的相互转换

数组转List

数组转SET

List转数组

Set转数组

List转SET

J2SE基础:10集合2的更多相关文章

  1. 『Python基础-10』字典

    # 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...

  2. J2SE基础题

    J2SE基础 八种基本数据类型的大小,以及他们的封装类.(有的也说是9中基本数据类型,包括了void) 基本类型 大小(字节) 默认值 封装类 byte 1 (byte)0 Byte short 2 ...

  3. [.net 面向对象编程基础] (10) 类的成员(字段、属性、方法)

    [.net 面向对象编程基础] (10) 类的成员(字段.属性.方法) 前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态 ...

  4. 十. Python基础(10)--装饰器

    十. Python基础(10)--装饰器 1 ● 装饰器 A decorator is a function that take a function as an argument and retur ...

  5. java基础-Map集合

    java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...

  6. JavaScript基础笔记集合(转)

    JavaScript基础笔记集合   JavaScript基础笔记集合   js简介 js是脚本语言.浏览器是逐行的读取代码,而传统编程会在执行前进行编译   js存放的位置 html脚本必须放在&l ...

  7. 万门大学Python零基础10天进阶班视频教程

    点击了解更多Python课程>>> 万门大学Python零基础10天进阶班视频教程 课程简介: 旨在通过两周的学习,让学生不仅能掌握python编程基础从而进行计算机程序的开发, 还 ...

  8. 第6节:Java基础 - 三大集合(上)

    第6节:Java基础 - 三大集合(上) 本小节是Java基础篇章的第四小节,主要介绍Java中的常用集合知识点,涉及到的内容包括Java中的三大集合的引出,以及HashMap,Hashtable和C ...

  9. Java基础之 集合体系结构(Collection、List、ArrayList、LinkedList、Vector)

    Java基础之 集合体系结构详细笔记(Collection.List.ArrayList.LinkedList.Vector) 集合是JavaSE的重要组成部分,其与数据结构的知识密切相联,集合体系就 ...

随机推荐

  1. wamp服务器下安装mantis

    什么是Mantis Mantis是一个BUG管理系统.主要特点如下: 1.用php写的系统,安装方便,不用像 bugzilla 那样安装那么多perl支持: 2.系统相对简单轻磅,使用简单: 3.出色 ...

  2. postgresql 备份(pg_dump,pg_restore)

    PG提供物理备份和逻辑备份(本篇主要讲逻辑备份)物理备份:WAL热备份逻辑备份:pg_dump,pg_dumpall,恢复时pg_restore 查看帮助命令: pg_dump --help 跟MyS ...

  3. position记录元素原始位置

    position记录元素原始位置 css样式: li { width: 100px; height: 100px; margin: 10px 0 0 10px; background-color: # ...

  4. 3、Collection接口中的功能概述

    package cn.itcast_01; import java.util.ArrayList; import java.util.Collection; /** * 集合: * 由于我们使用的是面 ...

  5. 使用Micrisoft.net设计方案 第二章组织模式

    第二章组织模式 模式不仅依赖于它所包含的更小模式,同时也依赖包含它的更大的模式.它是描述复杂软件的系统方法. 本章的目标是让我们了解以下问题: 1.如何标识模式与模式的关系 2.如何把模式组织成模式集 ...

  6. shell学习第一弹-初识

    1.shell简介: shell是系统的用户界面,提供了用户与内核进行交互的一种接口.可以看做是用户与内核之间的一扇窗户.它接收用户输入的命令并把它送入内核执行. 常见的有bash,tcsh,csh, ...

  7. UVa 1583 Digit Generator WA

    #include<stdio.h> int main() { long int n,i,s=0; while(scanf("%d",&n)!=EOF) { in ...

  8. html form表单追加input元素后在提交

    form.append(input); //input为对象 (设置name和val有效) $("#form1").submit();//提交事件

  9. Linux 中文件名颜色所代表的属性

    1. 白色:表示一般文件 2. 蓝色:表示目录 3. 绿色:表示可执行的文件或程序 4. 浅蓝色:表示链接文件 5. 黄色:表示设备文件 6. 灰色:表示其他类型文件 7. 红色:表示压缩文件或者包文 ...

  10. K8s的工作原理

    title: Kubernetes之初探 subtitle: K8s的工作原理 date: 2018-09-18 18:26:37 --- K8s概述 我清晰地记得曾经读到过的一篇博文,上面是这样写的 ...