一、Java集合框架
1.Java提供的特设类如:Dictionary Vector Stack和Properties这些类来储存和操作对象组
2.通过这些接口实现集合如:LinkedList HashSet和TreeSet,集合框架是一个用来代表和操纵集合的同一框架,所有的集合包含如下:
接口:是代表集合的抽象数据类型
实现类:集合接口的实现
算法:排序和搜索,这些算法称为多态
除了集合,这个框架定义了几个Map接口和类,Map里储存的是键值对
Java集合提供了一套性能优良,使用方便
二、集合接口
1.Collection接口
Collection是最基本的集合接口,Java不提供直接继承自collection的类,只提供继承于的子接口(List和set)
2.List接口是一个有序的collection,使用这个接口可以精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为0,而且允许有相同的元素
3.set 与collection有一样的接口,只是行为不同,set不保存重复的元素
4.Map 将唯一的键映射到值
5.Map.Entry 描述一个Map中的一个元素 是一个Map的内部类
6.Enumeration传统的接口和定义的方法已被迭代器取代
三、set和list的区别
1.set接口实例是无序,不重复的数据 list接口实例存储是有序可以重复的元素
2.list和数组类似,可以动态增长<实现类有ArrayList,LinkedList,Vector>
四、ArrayList
1.ArrayList实现了list的接口,可随机访问和遍历元素
2.Java.util中定义了类:向量,栈,字典,哈希表,属性,位集合
五、集合算法
1.集合框架定义了几种算法用于集合和映射,定义为集合类的静态方法
2.集合定义三个静态变量:EMPTY_SET EMPTY_LIST EMPTY_MAP
六、如何使用迭代器
1.遍历一个集合中的元素,显示每个元素 一般遍历数组都采用for循环和增强for 但是还有一种方法采用迭代器遍历集合框架,实现了iterator接口或listiterator接口
2.可以通过循环得到和删除集合的元素listiterator继承了iterator,可以允许遍历列表和修改原
3.遍历ArrayList
public class EnumerationTester {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("Hello");
list.add("World");
list.add("HAHAHAHA");
// 第一种遍历方法使用foreach遍历List
for (String str : list) { // 也可以改写for(int i=0;i<list.size();i++)这种形式
System.out.println(str);
}
// 第二种遍历,把链表变为数组相关的内容进行遍历
String[] strArray = new String[list.size()];
list.toArray(strArray);
for (int i = 0; i < strArray.length; i++) // 这里也可以改写为 foreach(String str:strArray)这种形式
{
System.out.println(strArray[i]);
}
// 第三种遍历 使用迭代器进行相关遍历
Iterator<String> ite = list.iterator();
while (ite.hasNext())// 判断下一个元素之后有值
{
System.out.println(ite.next());
}
}
}