java集合类
来源:互联网 发布:淘宝号限购了最新解法 编辑:程序博客网 时间:2024/06/03 21:46
集合概述:
Java集合框架:
- 1. 什么是框架:类库的集合。
- 2.集合框架:用来表示和操作的统一框架,包含了实现集合的接口和类。
- 3.集合:存放数据的容器。
为什么会出现集合类?
面向对象的语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合石存储对象最常用的一种形式。
数组和集合类同样都是容器,有什么区别呢?
数组虽然也可以存储对象,但长度是固定的;集合的长度是可变你的。
数组中可以存储基本数据类型,集合只能存储对象。
集合类的特点:
集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。它的存储方式被称之为----数据结构。
(集合中存储的都是对象的引用(或是地址值),并不是对象实体)
集合的结构图(并不包含所有,只是一部分):
上面的也可以看出来集合又分为很多种,他们之间又有着各种各样的关系,后面会一一写出来的。
Collection 你可以理解为大Boss,它是最基本的集合接口,是List、Set和Queue接口的父接口。
集合的遍历:
数组的遍历是通过下标来实现的,那么集合该怎么实现呢?自然也有它的方法,利用迭代器。
不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代器,使用该迭代器即可逐一访问Collection中每一个元素。
<span style="font-size:14px;">import java.util.ArrayList;import java.util.Iterator;public class Test11 {public static void main(String[] args) {ArrayList al = new ArrayList();al.add("java01");al.add("java02");al.add("java03");al.add("java04");for(Iterator it = al.iterator();it.hasNext();){System.out.println(it.next());}}}</span>
List接口:
List集合代表一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。List集合默认按元素的添加顺序设置元素的索引。List接口作为Collection接口的子接口,他可以使用Collection接口里的全部方法。而且由于List是有序集合,因此List集合里增加了一些根据索引来操作集合元素的方法。
实现List接口的常用类有LinkedList,ArrayList,Vector:
ArrayList采用数组保存元素,意味着当大量添加元素,数组空间不足时,依然需要通过新建数组,内存复制的方式来增加容量,效率较低;而当进行对数组进行插入,删除操作时,又会进行循环移位操作,效率也较低;只有进行按下标查询时(get方法),使用数组效率很高。
Vector与ArrayList的内部实现相似,Vector设计为线程安全,ArrayList设计为非线程安全。为了保证线程安全,Vector在性能方面稍逊于ArrayList,目前我们编写的都是单线程应用程序,应选择使用ArrayList。
ArrayList与LinkedList均设计为非线程安全,ArrayList内部采用数组实现(与Vector相同),LinkedList内部采用链表结构实现。
LinkedList采用链表保存元素,在添加元素时只需要进行一次简单的内存分配即可,效率较高;进行插入,删除操作时,只需对链表中相邻的元素进行修改即可,效率也很高;但进行按下标查询时,需要对链表进行遍历,效率较低。
Set接口:
Set集合无法记住添加元素的顺序,所以set里的集合不能重复。
HashSet是Set接口的典型实现,大多数适用Set集合的时候都是使用这个实现类。它按照Hash算法来存储集合中元素,所以具有很好的存取和查找性能。
Map接口:
Map接口并没有继承Collection接口,而是提供了Key到Value的一个映射,一个Map中不能包含相同的key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。
处理Map的三种集合:
关键字集KeySet()
数值集value()
项目集enrySet()HashMap 和 Hashtable 都是Map接口的典型实现类,Hashtable是一个古老的Map实现类,现在很少使用,因为他出现时java还没有提供Map接口,它包含了两个繁琐的方法,即elements()(类似于Map接口定义的value()方法)和keys()(类似于Map接口的keySet()方法)。
除此之外他们还有两点典型区别:
1、Hashtable是一个线程安全的Map实现,允许多线程访问集合元素,而HashMap是一个不安全的。
2、Hashtable不允许使用null作为key 和 value ,否则会触发空指针异常。而HashMap可以,但只能有一个。
- Java集合:集合类详解
- Java集合-常用集合类
- JAVA【集合一】集合类
- JAVA中的集合类
- JAVA中的集合类
- JAVA中的集合类
- Java集合类(整理)
- java集合类
- JAVA中的集合类
- Java集合类笔记
- JAVA中的集合类
- java集合类
- java集合类总结
- JAVA中的集合类 - -
- JAVA中的集合类
- java集合类
- java 集合类
- java中的集合类
- [Win32]IP数据报的首部如何定义
- 解决java 查看JDK中底层源码的实现方法
- Struts入门
- trace 10061 屏蔽smon对临时段的处理
- XXX is not in the sudoers file 解决(转)
- java集合类
- iOS之文件上传、下载(上传)
- java基础之求数组最大值
- Java深入 - logback的配置和使用
- 打卡27:代理服务器select version
- 开发WCF服务操作Sitecore
- linux ps命令
- ListFragment的使用
- 数据库的一些简单操作