API ----集合 ----泛型
案例1:HashMap嵌套ArrayList
*需求:
*假设HashMap集合的元素是ArrayList。有3个。
*每一个ArrayList集合的值是字符串。
*元素我已经完成,请遍历。
*结果:
* 三国演义
* 吕布
* 周瑜
* 笑傲江湖
* 令狐冲
* 林平之
* 神雕侠侣
* 郭靖
* 杨过
package cn.itcast_05;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;
public class HashMapIncludeArrayListDemo {
public static void main(String[] args) {
// 创建集合对象
HashMap<String, ArrayList<String>> hm = new HashMap<String, ArrayList<String>>();
// 创建元素集合1
ArrayList<String> array1 = new ArrayList<String>();
array1.add("吕布");
array1.add("周瑜");
hm.put("三国演义", array1);
// 创建元素集合2
ArrayList<String> array2 = new ArrayList<String>();
array2.add("令狐冲");
array2.add("林平之");
hm.put("笑傲江湖", array2);
// 创建元素集合3
ArrayList<String> array3 = new ArrayList<String>();
array3.add("郭靖");
array3.add("杨过");
hm.put("神雕侠侣", array3);
//遍历集合
Set<String> set = hm.keySet();
for(String key : set){
System.out.println(key);
ArrayList<String> value = hm.get(key);
for(String s : value){
System.out.println("t"+s);
}
}
}
}
我自己的答案:
//定义大集合
Map<String, List<String>> map = new HashMap<String, List<String>>();
//定义小集合
List<String> array1 = new ArrayList<String>();
List<String> array2 = new ArrayList<String>();
List<String> array3 = new ArrayList<String>();
//小集合添加元素
array1.add("lvbu");
array1.add("zhouyu");
array2.add("linghuchong");
array2.add("linpingzhi");
array3.add("guojing");
array3.add("yangguo");
//把小集合添加到大集合
map.put("sanguoyanyi", array1);
map.put("xiaoaojianghu", array2);
map.put("shendiaoxialv", array3);
//采用方式1遍历
Set<String> set1 = map.keySet();
for (String i : set1) {
System.out.println(i);
for (String ii : map.get(i)) {
System.out.println(" " + ii);
}
System.out.println();
}
案例2:ArrayList嵌套HashMap
/*
ArrayList集合嵌套HashMap集合并遍历。
需求:
假设ArrayList集合的元素是HashMap。有3个。
每一个HashMap集合的键和值都是字符串。
元素我已经完成,请遍历。
结果:
周瑜---小乔
吕布---貂蝉
郭靖---黄蓉
杨过---小龙女
令狐冲---任盈盈
林平之---岳灵珊
*/
package cn.itcast_05;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;
public class ArrayListIncludeHashMapDemo {
public static void main(String[] args) {
// 创建集合对象
ArrayList<HashMap<String, String>> array = new ArrayList<HashMap<String, String>>();
// 创建元素1
HashMap<String, String> hm1 = new HashMap<String, String>();
hm1.put("周瑜", "小乔");
hm1.put("吕布", "貂蝉");
// 把元素添加到array里面
array.add(hm1);
// 创建元素1
HashMap<String, String> hm2 = new HashMap<String, String>();
hm2.put("郭靖", "黄蓉");
hm2.put("杨过", "小龙女");
// 把元素添加到array里面
array.add(hm2);
// 创建元素1
HashMap<String, String> hm3 = new HashMap<String, String>();
hm3.put("令狐冲", "任盈盈");
hm3.put("林平之", "岳灵珊");
// 把元素添加到array里面
array.add(hm3);
// 遍历
for (HashMap<String, String> hm : array) {
Set<String> set = hm.keySet();
for (String key : set) {
String value = hm.get(key);
System.out.println(key + "---" + value);
}
}
}
}
我自己的答案:
// 定义大集合
ArrayList<HashMap<String, String>> array = new ArrayList<HashMap<String, String>>();
// 定义三个小集合
HashMap<String, String> hash1 = new HashMap<String, String>();
HashMap<String, String> hash2 = new HashMap<String, String>();
HashMap<String, String> hash3 = new HashMap<String, String>();
// 把数据加入小集合
hash1.put("zhouyu", "xiaoqiao");
hash1.put("lvbu", "diaochan");
hash2.put("guojing", "huangrong");
hash2.put("yangguo", "xiaolongnv");
hash3.put("linghuchong", "renyingying");
hash3.put("linpingzhi", "yuelingshan");
// 把小集合加入大集合
array.add(hash1);
array.add(hash2);
array.add(hash3);
// ArrayList的遍历有三种,普通for,增强for,迭代器
// 我决定三种都用一下
// 普通for
for (int i = 0; i < array.size(); i++) {
HashMap<String, String> tempmap = array.get(i);
// 采用map的第1种方式遍历
Set<String> set1 = array.get(i).keySet();
for (String ii : set1) {
System.out.println(ii + " " + tempmap.get(ii));
}
System.out.println();
}
System.out.println("---------");
// 增强for
for (HashMap<String, String> i : array) {
// 采用map的第二种方式遍历
Set<Map.Entry<String, String>> set2 = i.entrySet();
for (Map.Entry<String, String> ii : set2) {
System.out.println(ii.getKey() + " " + ii.getValue());
}
System.out.println();
}
System.out.println("--------");
// 迭代器
for (Iterator<HashMap<String, String>> it = array.iterator(); it
.hasNext();) {
HashMap<String, String> tempmap = it.next();
// 采用HashMap的第1种方式遍历
Set<String> set1 = tempmap.keySet();
for (String i : set1) {
System.out.println(i + " " + tempmap.get(i));
}
System.out.println();
}
}