0815 Java集合框架

来源:互联网 发布:java多线程编程 pdf 编辑:程序博客网 时间:2024/06/16 03:26

一、集合框架体系


Java 集合框架提供了一套性能优良,使用方便的接口和类,java集合框架位于java.util包中, 所以当使用集合框架的时候需要进行导包。

二、集合接口

1、Collection 接口

Collection 是最基本的集合接口,一个 Collection 代表一组 Object,Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。

2、List 接口

List接口是一个有序的Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的小标)来访问List中的元素,而且允许有相同的元素。

3、Set

Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。

4、Map
将唯一的键映射到值。

Set和List的区别

1. Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。

2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>

3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector>

三、集合实现类

LinkedList和ArrayList的区别
LinkedList该类实现了List接口,允许有null(空)元素。主要用于创建链表数据结构,该类没有同步方法,如果多个线程同时访问一个List,则必须自己实现访问同步,解决方法就是在创建List时候构造一个同步的List。LinkedList 查找效率低。

ArrayList该类也是实现了List的接口内部采用了可变长度的数组,分配的是连续的空间,遍历元素(从第一个到最后一个)及随机访问(随机查看某一个)。该类也是非同步的,在多线程的情况下不要使用。ArrayList 增长当前长度的50%,插入删除效率低。

四、集合的使用

定义


添加


访问


size()方法:

list.size():获取list的个数

get()方法:

获取集合取对应属性的值

remove()方法:

有两个重载(int a)(object o)
1.通过传入具体的元素值来删除,返回删除结果true/false

结果为true
2.通过传入对应元素的下标来删除元素,返回被删除的元素内容


contains()方法:

isEmpty()方法:

判断集合是否为空 true,false


clear()方法:

清空数据,保留对象,重置list

indexOf()方法:

返回元素第一次出现位置的下标

lastIndexOf():

返回元素最后一次出现位置的下标

removeAll()方法:

从集合中删除另一个集合所包含的元素

list.removeAll(list2);

数组和List之间的相互转换


1、ArrayList集合类常用方法


2、LinkedList集合类常用方法


五、迭代器

Iterator


原创粉丝点击