java.util包下的三中集合 及 Iterator接口
2013-07-14 10:17
579 查看
java.util包
Collection接口、List接口、Set接口、Map接口(Iterator接口)
集合可以理解为用来在内存中存放一组对象的容器,java中有三种集合类:
(1)List 来自Collection接口,实现类有序可重复,集合中的每一个对象都有一个惟一的顺序位置,通过它们的下标表示出来,遍历的时候可以按照它们的下标顺序逐一访问。主要有ArrayList、LinkedList、Vector三种实现类。
(2)Set 来自Collection接口,实现类无序不可重复,也就是说集合中的对象无序且互异,可以通过迭代的方式进行遍历。主要有HashSet、TreeSet两种实现类。(往集合中添加元素时,如果有重复的元素会被覆盖掉)
(3)Map 实现类里存放键值对(映射)。一种对象称为key,一种称为value,其中key不能重复,但value能重复,由于存放的对象数量与上面两种不同,所以在选择使用Map时是很方便的,遍历Map时可以先用迭代器得到key,再通过key与value的对应得到value。主要有HashMap、HashTale、TreeMap三种实现类。(key不能重复,其实实质上和集合Set是一样的,添加元素(key)重复,也会覆盖)
附:数组与集合的区别:
数组用于存储统一类型的数据,有固定的长度;集合可以存储不同类型的数据,没有固定的大小。
Iterator接口实现类是获取集合中元素的过程,实际上帮助获取集合中的元素。也就是通过迭代实现遍历集合中的元素。
起有三种方法:hasNext() 如果仍有元素可以迭代,则返回 true。
next() 返回迭代的下一个元素。
remove() 从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)。
下面举一个Map用迭代遍历的例子:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest {
public void testMap(){
//创建一个集合map
Map<Integer, String> map = new HashMap<Integer,String>();
map.put(1, "aaa");
map.put(2, "bbb");
map.put(3,"ccc");
map.put(2, "ddd");
System.out.println(map);
//获取key集合(Set)
Set<Integer> set = map.keySet();
Iterator<Integer> it = set.iterator();
while(it.hasNext()){
int key = it.next();
//通过key获取对应的value值
String value = map.get(key);
System.out.println("key="+key+" value="+value);
}
}
//主函数 实现程序
public static void main(String[] args) {
Test test = new Test();
test.testMap();
}
}
运行结果: {1=aaa, 2=ddd, 3=ccc}
key=1 value=aaa
key=2 value=ddd
key=3 value=ccc
实验小结: 由结果可看出,遍历Map可以用迭代先找出key的值,再通过key找出value的值;
输入的(2,"aaa")被(2,"ddd")覆盖掉了;
迭代遍历元素的方法。
Collection接口、List接口、Set接口、Map接口(Iterator接口)
集合可以理解为用来在内存中存放一组对象的容器,java中有三种集合类:
(1)List 来自Collection接口,实现类有序可重复,集合中的每一个对象都有一个惟一的顺序位置,通过它们的下标表示出来,遍历的时候可以按照它们的下标顺序逐一访问。主要有ArrayList、LinkedList、Vector三种实现类。
(2)Set 来自Collection接口,实现类无序不可重复,也就是说集合中的对象无序且互异,可以通过迭代的方式进行遍历。主要有HashSet、TreeSet两种实现类。(往集合中添加元素时,如果有重复的元素会被覆盖掉)
(3)Map 实现类里存放键值对(映射)。一种对象称为key,一种称为value,其中key不能重复,但value能重复,由于存放的对象数量与上面两种不同,所以在选择使用Map时是很方便的,遍历Map时可以先用迭代器得到key,再通过key与value的对应得到value。主要有HashMap、HashTale、TreeMap三种实现类。(key不能重复,其实实质上和集合Set是一样的,添加元素(key)重复,也会覆盖)
附:数组与集合的区别:
数组用于存储统一类型的数据,有固定的长度;集合可以存储不同类型的数据,没有固定的大小。
Iterator接口实现类是获取集合中元素的过程,实际上帮助获取集合中的元素。也就是通过迭代实现遍历集合中的元素。
起有三种方法:hasNext() 如果仍有元素可以迭代,则返回 true。
next() 返回迭代的下一个元素。
remove() 从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)。
下面举一个Map用迭代遍历的例子:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest {
public void testMap(){
//创建一个集合map
Map<Integer, String> map = new HashMap<Integer,String>();
map.put(1, "aaa");
map.put(2, "bbb");
map.put(3,"ccc");
map.put(2, "ddd");
System.out.println(map);
//获取key集合(Set)
Set<Integer> set = map.keySet();
Iterator<Integer> it = set.iterator();
while(it.hasNext()){
int key = it.next();
//通过key获取对应的value值
String value = map.get(key);
System.out.println("key="+key+" value="+value);
}
}
//主函数 实现程序
public static void main(String[] args) {
Test test = new Test();
test.testMap();
}
}
运行结果: {1=aaa, 2=ddd, 3=ccc}
key=1 value=aaa
key=2 value=ddd
key=3 value=ccc
实验小结: 由结果可看出,遍历Map可以用迭代先找出key的值,再通过key找出value的值;
输入的(2,"aaa")被(2,"ddd")覆盖掉了;
迭代遍历元素的方法。
相关文章推荐
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与LinkedHashSet类))
- 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- 在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父子关系
- java - 集合框架(一)区分 Iterator 接口 和 Iterable接口
- Java核心类库——集合的迭代(遍历) Iterator接口
- Java中遍历集合的三种方法(for循环、for循环jdk1.5的新方法、Iterator接口)
- Java基础-集合框架2 Collection和Iterator接口
- Java集合(1)——Iterable接口和Iterator接口
- java.util.Iterator<E>接口浅析
- 几个JAVA集合中常用的接口学习:Collection、Iterator和Map
- 迭代器java.util.Iterator接口
- java集合(1):集合框架体系之Collection接口及迭代器Iterator接口
- Java框架集合:Collection<E>、Iterable<T>和Iterator<E>接口
- Java集合(3)——ListIterator接口源码 & ListIterator接口与Iterator接口辨析
- JAVA基础再回首(十四)——集合框架、Collection接口、迭代器Iterator、List接口、ListIterator列表迭代器
- 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- 第12章--Java集合之Iterator接口的使用
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
- 一大波Java来袭(六)——Java集合之Collection和Iterator接口