java集合框架
一、集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:
- 接口:是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为 了以不同的方式操作集合对象
- 实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。
二、集合框架示意图如下:
从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射,常用的有 ArrayList、HashSet、List、HashMap 等等。
集合接口
序号 | 接口描述 |
---|---|
1 | Collection 接口存储一组不唯一,无序的对象。 |
2 | List 接口存储一组不唯一,有序的对象。 |
3 | Set 接口存储一组唯一,无序的对象。 |
4 | Map 接口存储一组键值对象,提供key(键)到value(值)的映射。 |
三、Set和List的区别
- Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。
- List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。
迭代器的使用
一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象,实现了Iterator 接口。
遍历 ArrayList
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("坤坤");
list.add("思追");
list.add("马飞飞");
//使用for-each方法遍历
for (String str : list) {
System.out.println(str);
}
//使用迭代器遍历
Iterator<String> ite=list.iterator();
while(ite.hasNext())//判断下一个元素之后有值
{
System.out.println(ite.next());
}
}
遍历map
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "秦川哈士奇");
map.put("2", "燕云窜天猴");
map.put("3", "襄州绿毛龟")
//第一种
System.out.println("使用Map.keySet遍历key和value:");
for (String key : map.keySet()) {
System.out.println("");
}
System.out.println("使用iterator遍历key和value:");
Iterator it1=map.values().iterator();
while (it2.hasNext()) {
Test1 ch=(Test1)it2.next();//Test1为类名
System.out.println("");
}
四、总结
- 集合是一个对象,可容纳其他对象的引用。集合接口声明对每一种类型的集合可以执行的操作。
- 集合框架的类和接口均在java.util包中。
- 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。