【自学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);
        }
    }

}

 

 

 

posted @ 2020-04-08 22:16  一只奶鹿  阅读(154)  评论(0)    收藏  举报