【自学java笔记#第三十一天#】集合
选用教材:《Java核心技术卷一》
第九章 集合
一、集合基础知识概述,见下图:

1、书里还写了一些枚举集和弱散列映射等比较少见的知识点,就没加到思维导图里面了。(有错误的话,欢迎大家指正)。
2、总的来说,比较难懂的是映射这一块,尤其是映射里面放的键或者值是另外的集合对象的情况。
3、这一章里还有一些关于算法的知识点,我准备单独写一篇博客。
二、例题:
1、处理并发修改异常:
package collection; import java.util.*; public class CollectionDemo { public static void main(String[] args) { List<String>list=new ArrayList<String>(); list.add("hello"); list.add("world"); list.add("java"); Iterator<String>it=list.iterator(); /**while(it.hasNext()) { String s=it.next(); if(s.equals("world")) { list.add("javaee"); } }*/ //并发修改异常 for(int i=0;i<list.size();i++) { String s=list.get(i); if(s.equals("world")) { list.add("javaee"); } } System.out.println(list); } }
2、创建一个ArrayList集合,存储三个元素,每一个元素都是HashMap,每一个HashMap的键和值都是String,并遍历ArrayList集合。
package collection; //需求:创建一个ArrayList集合,存储三个元素,每一个元素都是HashMap,每一个HashMap的键和值都是String,并遍历ArrayList集合。 import java.util.*; public class ArrayListTest { public static void main(String[] args) { //创建ArrayList集合 ArrayList<HashMap<String,String>>array=new ArrayList<HashMap<String,String>>(); //HashMap集合,并添加键值对元素 HashMap<String,String>hm1=new HashMap<String,String>(); hm1.put("孙策", "大乔"); hm1.put("周瑜", "小乔"); //把HashMap作为元素添加到ArrayList集合 array.add(hm1); HashMap<String,String>hm2=new HashMap<String,String>(); hm1.put("郭靖", "黄蓉"); hm1.put("杨过", "小龙女"); array.add(hm2); HashMap<String,String>hm3=new HashMap<String,String>(); hm1.put("令狐冲", "任盈盈"); hm1.put("凌平之", "岳灵珊"); array.add(hm3); //遍历ArrayList集合 for(HashMap<String,String> hm:array) { //遍历HashMap集合中的元素 Set<String>set=hm.keySet(); for(String key:set) { String value=hm.get(key); System.out.println(key+","+value); } } } }
3、映射的两种遍历方式
package collection; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; public class MapTest { public static void main(String[] args) { Map<String,String>map=new HashMap<String,String>(); map.put("itheima001","林青霞"); map.put("itheima002", "张曼玉"); map.put("itheima003", "王祖贤"); //遍历方式1:通过键集合去找对应的值,再输出。 /** Set<String>keySet=map.keySet(); for(String key:keySet) { String value=map.get(key); System.out.println(key+","+value); }*/ //便利方式2:通过键值对集合的方式获得键和值,再输出。 Set<Map.Entry<String, String>>entrySet=map.entrySet(); for(var me:entrySet) { String key=me.getKey(); String value=me.getValue(); System.out.println(key+","+value); } } }
浙公网安备 33010602011771号