J2SE基础:10集合2
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的更多相关文章
- 『Python基础-10』字典
# 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...
- J2SE基础题
J2SE基础 八种基本数据类型的大小,以及他们的封装类.(有的也说是9中基本数据类型,包括了void) 基本类型 大小(字节) 默认值 封装类 byte 1 (byte)0 Byte short 2 ...
- [.net 面向对象编程基础] (10) 类的成员(字段、属性、方法)
[.net 面向对象编程基础] (10) 类的成员(字段.属性.方法) 前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态 ...
- 十. Python基础(10)--装饰器
十. Python基础(10)--装饰器 1 ● 装饰器 A decorator is a function that take a function as an argument and retur ...
- java基础-Map集合
java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...
- JavaScript基础笔记集合(转)
JavaScript基础笔记集合 JavaScript基础笔记集合 js简介 js是脚本语言.浏览器是逐行的读取代码,而传统编程会在执行前进行编译 js存放的位置 html脚本必须放在&l ...
- 万门大学Python零基础10天进阶班视频教程
点击了解更多Python课程>>> 万门大学Python零基础10天进阶班视频教程 课程简介: 旨在通过两周的学习,让学生不仅能掌握python编程基础从而进行计算机程序的开发, 还 ...
- 第6节:Java基础 - 三大集合(上)
第6节:Java基础 - 三大集合(上) 本小节是Java基础篇章的第四小节,主要介绍Java中的常用集合知识点,涉及到的内容包括Java中的三大集合的引出,以及HashMap,Hashtable和C ...
- Java基础之 集合体系结构(Collection、List、ArrayList、LinkedList、Vector)
Java基础之 集合体系结构详细笔记(Collection.List.ArrayList.LinkedList.Vector) 集合是JavaSE的重要组成部分,其与数据结构的知识密切相联,集合体系就 ...
随机推荐
- [Plugin] 文件上传利器SWFUpload使用指南
SWFUpload是 一个flash和js相结合而成的文件上传插件,其功能非常强大.以前在项目中用过几次,但它的配置参数太多了,用过后就忘记怎么用了,到以后要用时又得 到官网上看它的文档,真是太烦了. ...
- 关于作者&情况
本校第一次做信奥 , 如有错误, 见谅 本人之前从未接触编程, 选择信奥也只是因为怕被其他奥赛给淘汰... 这应该是懦弱吧...... 但自从接触编程以来, 虽然算不上极大的热爱, 但发自内心地喜欢它 ...
- A - George and Accommodation
Problem description George has recently entered the BSUCP (Berland State University for Cool Program ...
- 控件——DataGridview
控件:DataGridview 用来显示数据, 可以显示和编辑来自多种不同类型的数据源的表格数据. 一.两种显示数据的方式:手动,后台代码 主要通过后台代码:先建立三大类 然后绑定 ...
- RN配置
Write by lz: 详细参考官方网址: http://reactnative.cn/docs/0.43/getting-started.html#content 若是无法安装 Chocolate ...
- aspnet_regiis加密文件提示路径中具有非法字符
加密结果受当前目录影响,不知道是不是哪里操作错误,mark. Web.config文件位置:E:\Web\Surgery 加密成功,上图命令最后有个".",表示web.conf ...
- Wireshark抓本地回环
最近正好要分析下本机两个端口之间通信状况.于是用wireshark抓包分析.对于本地回环要进行一些特殊的设置. 1.通过“运行”---“cmd” 输入“route add [本机IP]mask 255 ...
- Java中成员变量和局部变量区别
在类中的位置不同 重点 成员变量:类中,方法外 局部变量:方法中或者方法声明上(形式参数) 作用范围不一样 重点 成员变量:类中 局部变量:方法中 初始化值的不同 重点 成员变量:有默认值 局部变量: ...
- VC++6.0进行数字图像处理的步骤以及遇到的问题
1) 2) 3) 添加CDIB类时,如果没有你要选的那个类,可以先随便选个基类继承,然后自己在代码里把基类修改成要继承的,把一些消息映射的注释掉就可以了,这样的话在建立类向导里也可以找到新建的类. / ...
- JS 用+1、-1填12()34()56()78()9=59
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...