欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于List、Set、Map集合的简介(一)

程序员文章站 2022-06-10 22:20:02
...

首先上图解释集合间的关系,初级面试的时候经常问。关于List、Set、Map集合的简介(一)
List集合遍历方式一共有四种:
1、因为其有toString方法,可直接输出;
2、普通for循环遍历,类似数组的遍历;
3、增强for循环遍历,类似数组的遍历;
4、使用Iterator迭代器遍历。
具体测试代码如下:
package com.fly.demo;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

/**
* @Description :List集合的遍历,跟数组的遍历大同小异。新增Iterator迭代器遍历、有序可重复
* @Create by FLY on 2017-10-20 9:06
*/
public class CollectionDemo1 {
public static void main(String[] args) {
//List集合主要有两个实现类:ArrayList、LinkedList。<泛型>限定集合中存数据的类型,是JDK1.5后的新特性。
List arrayList = new ArrayList<>();
List linkedList = new LinkedList<>();

    //各集合中添加3条测试数据,调用add方法。
    arrayList.add(4);
    arrayList.add(8);
    arrayList.add(2);
    linkedList.add("肆");
    linkedList.add("捌");
    linkedList.add("贰");
    //1、直接System.out.println(集合名).因为有toString()方法,可以直接在控制台中打印集合数据。
    //输出结果[4,8,2]      [4,8,2]  很简单,不做描述

    //2、使用普通for循环遍历集合。可以用下标取数据,类似数组
    for (int i = 0;i < arrayList.size();i++){
        System.out.println("普通for循环遍历arrayList==="+arrayList.get(i));
        System.out.println("普通for循环遍历linkedList==="+linkedList.get(i));
    }
    System.out.println("-------------华丽分割线,开始增强for循环--------------------");
    //3、使用增强for循环遍历。很方便,但是没有下标没法精准的取数据
    for (Integer i : arrayList){
        System.out.println("增强for循环遍历arrayList==="+i);
    }
    for(String str : linkedList){
        System.out.println("增强for循环遍历linkedList==="+str);
    }
    System.out.println("-------------华丽分割线,开始迭代器遍历--------------------");
    //4、使用Iterator迭代器遍历
    Iterator iterator1 = arrayList.iterator();
    Iterator iterator2 = linkedList.iterator();
    while (iterator1.hasNext()){    //如果存在下一个数据
        System.out.println("迭代器遍历arrayList"+iterator1.next());      //就输出
    }
    while(iterator2.hasNext()){
        System.out.println("迭代器遍历linkedList"+iterator2.next());
    }
}

}
Set集合类同List集合,不赘述,其无序不重复的特性需要注意。
——————————————我是华丽的分割线—————————————————
关于Map集合的遍历,主要有以下几种方法:
Map集合中的数据以key-value键值对的形式存储,值可为null,键重复时会覆盖先前的值。遍历Map集合时用到的主要方法及属性:map.entrySet()—获得map集合所有键值对的集合;map.ketSet()—获得map集合中所有key的集合;getKey()—获取key值;getValue()—根据key得到相应的value。Map中的其他方法参照API,感兴趣的自行查阅。
package com.fly.demo;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* @Description :Map集合的遍历和使用,无序不可重复,以Map的实现类HashMap为例。
* @Create by FLY on 2017-10-20 10:10
*/
public class CollectionDemo2 {

public static void main(String[] args) {
    Map<String,Integer> map = new HashMap<>();
    //添加测试数据,相同的key,值会覆盖。value也可以为空。
    map.put("捕鱼达壬",6);
    map.put("捕鱼达壬",666);
    map.put("戒网鱼壬",null);

    //1、直接输出即可、结果为:{捕鱼达壬=666, 戒网鱼壬=null}可以看到,首个key为捕鱼达壬的值被覆盖
    //2、得到所有的key的集合,遍历key集合,根据key得到对应的value
    Set<String> set = map.keySet();
    for (String str : set){
        System.out.println("key+value"+str+"+"+map.get(str));
    }
    System.out.println("=========================我是华丽的输出分割线===========================");
    //3、得到所有的键值对集合,遍历,使用getkey,getvalue方法
    Set<Map.Entry<String,Integer>> set1 = map.entrySet();
    for(Map.Entry<String,Integer> entry : set1){
        System.out.println("Key+Value"+entry.getKey()+":"+entry.getValue());
    }
}

}

续第二篇:一个很有意思的实际应用问题及实现
http://blog.csdn.net/Fly964747264/article/details/78293814
这怎么关联到下一篇上?不会弄啊,只好给你们个URL了,哪里有教程?