博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
J2SE基础:10集合2
阅读量:6697 次
发布时间:2019-06-25

本文共 1679 字,大约阅读时间需要 5 分钟。

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

转载地址:http://qfvoo.baihongyu.com/

你可能感兴趣的文章
python写的监控mysql主从的app
查看>>
部署Windows Server Update Services 4.0
查看>>
财务自由之路——为什么选择淘宝(下)
查看>>
物联网概念升级,万物互联来袭
查看>>
Webpack4干货分享(二),使用loader处理scss,图片以及转换JS
查看>>
[转载]C 指针
查看>>
社交网站与网民隐私安全报告(2009)
查看>>
linux命令行抓取网页快照-(xvfb+CutyCapt)
查看>>
Adobe Dreamweaver 添加库、标签和属性
查看>>
深入Django(1): 通用视图 (generic views)
查看>>
dos2unix整个目录
查看>>
CentOS下python-mysqldb安装
查看>>
对SqlServer2008中的日志进行截断的方法
查看>>
web service
查看>>
OpenXLive 0.9.9 SDK发布,增加对SNS的支持
查看>>
linux下安装oracle 11g R2
查看>>
使用jQuery Mobile移动开发框架将博客网站快速转化为Mobile网站
查看>>
varnish-cache使用
查看>>
在没有数据集的情况下使用数据表
查看>>
黄聪:PHP获取MAC地址(转)
查看>>