import java.util.*;
public class jihe {
public static void output(Object a){
System.out.println(a);
}
public static void main(String[] args){
output("********List************");
List<String> list=new ArrayList<String>();
list.add("aa0");
list.add("aa1");
list.add("aa2");
list.add("aa3");
output("创建迭代器 第一种方法输出遍历");
Iterator<String> it= list.iterator();
while(it.hasNext()){
String value=it.next();
output(value);
}
output("for 第二种方法输出遍历");
for(String value2:list){
System.out.printf("%s\n",value2);
}
output("********Map************");
Map<Integer,String> map=new HashMap<Integer,String>();
map.put(1,"ss1");
map.put(2,"ss2");
map.put(3,"ss3");
output("Map第一种keySet()方法获取元素******");
Set<Integer> set=map.keySet();
//原理:将Map集合中的所有键存入到Set集合中,因为Set集合具备迭代器,所以可以用迭代方式取出所有的键,再根据get方法获取每一个键对应的值。
//简单说就是:Map集合---->Set集合 ---->迭代器取出
output("创建迭代器 第一种方法输出遍历");
Iterator<Integer> it2=set.iterator();
while(it2.hasNext()){
int key=it2.next();
output(key+" "+map.get(key));
}
output("for 第二种方法输出遍历");
for(Integer key:set){
output(key+" "+map.get(key));
}
output("Map第二种entrySet()方法获取元素******");
Set<Map.Entry<Integer, String>> set2 = map.entrySet();
//原理:将Map集合中的映射关系存入到了Set集合中,而这个映射关系的数据类型是Map.Entry,在通过迭代器将映射关系存入到Map.Entry集合中,
//并通过其中的getKey()和getValue()放取出键值。
// 关于Map.Entry :Map是一个接口,其实,Entry也是一个接口,它是Map的子接口中的一个内部接口,就相当于是类中有内部类一样。为何要定义在其内部呢?
// 原因:a.Map集合中存的是映射关系这样的两个数据,是先有Map这个集合,才可有映射关系的存在,而且此类关系是集合的内部事务。
//b.并且这个映射关系可以直接访问Map集合中的内部成员,所以定义在内部。
output("创建迭代器 第一种方法输出遍历");
Iterator<Map.Entry<Integer, String>> it3 =set2.iterator();
while(it3.hasNext()){
Map.Entry<Integer, String> me=it3.next();
int key=me.getKey();
String value=me.getValue();
output(key+": "+value);
}
output("for 第二种方法输出遍历");
for (Map.Entry<Integer, String> me2 : set2) {
System.out.print(me2.getKey()+" ");
System.out.println(me2.getValue());
}
}
}
public class jihe {
public static void output(Object a){
System.out.println(a);
}
public static void main(String[] args){
output("********List************");
List<String> list=new ArrayList<String>();
list.add("aa0");
list.add("aa1");
list.add("aa2");
list.add("aa3");
output("创建迭代器 第一种方法输出遍历");
Iterator<String> it= list.iterator();
while(it.hasNext()){
String value=it.next();
output(value);
}
output("for 第二种方法输出遍历");
for(String value2:list){
System.out.printf("%s\n",value2);
}
output("********Map************");
Map<Integer,String> map=new HashMap<Integer,String>();
map.put(1,"ss1");
map.put(2,"ss2");
map.put(3,"ss3");
output("Map第一种keySet()方法获取元素******");
Set<Integer> set=map.keySet();
//原理:将Map集合中的所有键存入到Set集合中,因为Set集合具备迭代器,所以可以用迭代方式取出所有的键,再根据get方法获取每一个键对应的值。
//简单说就是:Map集合---->Set集合 ---->迭代器取出
output("创建迭代器 第一种方法输出遍历");
Iterator<Integer> it2=set.iterator();
while(it2.hasNext()){
int key=it2.next();
output(key+" "+map.get(key));
}
output("for 第二种方法输出遍历");
for(Integer key:set){
output(key+" "+map.get(key));
}
output("Map第二种entrySet()方法获取元素******");
Set<Map.Entry<Integer, String>> set2 = map.entrySet();
//原理:将Map集合中的映射关系存入到了Set集合中,而这个映射关系的数据类型是Map.Entry,在通过迭代器将映射关系存入到Map.Entry集合中,
//并通过其中的getKey()和getValue()放取出键值。
// 关于Map.Entry :Map是一个接口,其实,Entry也是一个接口,它是Map的子接口中的一个内部接口,就相当于是类中有内部类一样。为何要定义在其内部呢?
// 原因:a.Map集合中存的是映射关系这样的两个数据,是先有Map这个集合,才可有映射关系的存在,而且此类关系是集合的内部事务。
//b.并且这个映射关系可以直接访问Map集合中的内部成员,所以定义在内部。
output("创建迭代器 第一种方法输出遍历");
Iterator<Map.Entry<Integer, String>> it3 =set2.iterator();
while(it3.hasNext()){
Map.Entry<Integer, String> me=it3.next();
int key=me.getKey();
String value=me.getValue();
output(key+": "+value);
}
output("for 第二种方法输出遍历");
for (Map.Entry<Integer, String> me2 : set2) {
System.out.print(me2.getKey()+" ");
System.out.println(me2.getValue());
}
}
}