集合——Map

Posted 做个机灵鬼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合——Map相关的知识,希望对你有一定的参考价值。

初学Map集合

1.Map主要用于存储键值对(key-value)的数据
2.Map的主要实现类包括 HashMap和TreeMap,其中 HashMap.基于哈希表实现, TreeMap基于红黑树实现
3.HashMap适用于在Map中插入、删除和定位元素
4.TreeMap适用于按自然顺序或自定义顺序对键值进行遍历
5.HashMap比TreeMap性能好,所以HashMap使用更多一些,如果需要对数据进行排序可以使用TreeMap
6.HashMap中的键不能重复,运行使用null键和null值,HashMap的Entry对象是无序的
在这里插入图片描述

代码实践

1.创建对象类

//模拟添加商品信息
public class Goods {
    private String id;
    private String name;
    private double price;
    //构造方法
    public Goods(String id,String name ,double price){
        this.id = id;
        this.name = name;
        this.price = price;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "商品编号:"+id+",商品名字:"+name+",商品价格:"+price;
    }
}

2.创建实现类

import java.util.*;
public class GoodsText {
    public static void main(String[] args) {

        Scanner conlse = new Scanner(System.in);
        //给Map加入泛型,其中key是String类型,value是Goods类型
        Map<String,Goods> entrySet = new HashMap<String, Goods>();
        System.out.println("请输入三条商品的信息:");
        int i = 0;
        while (i<3){
            System.out.println("输入三件商品信息:");
            System.out.println("请"+(i+1)+"第输入商品的编号:");
            String id = conlse.next();
            //判断是否输入重复的编号
            if(entrySet.containsKey(id)){
                System.out.println("商品编号重复,请从新输入!");
                continue;//结束本次循环
            }
            System.out.println("请输入商品的名字:");
            String name = conlse.next();
            System.out.println("请输入商品的价格:");
            double price = 0;
            //捕获价格输入时可能出现的异常
            try {
                price = conlse.nextDouble();
            }catch (java.util.InputMismatchException e){
                System.out.println("价格的格式不对,非数值型请重新输入");
                //把上一个输入错误的价格,丢到异常里,不然会传给下一个商品的编号
                conlse.next();
                continue;
            }

            Goods goods = new Goods(id,name,price);
            entrySet.put(id,goods);
            i++;
        }
        //利用迭代器进行输出
        Iterator<Goods> it=entrySet.values().iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
    }
}

以上是关于集合——Map的主要内容,如果未能解决你的问题,请参考以下文章

201621123037 《Java程序设计》第9周学习总结

作业09-集合与泛型

laravel特殊功能代码片段集合

CSP核心代码片段记录

Groovymap 集合 ( map 集合遍历 | 使用 map 集合的 each 方法遍历 map 集合 | 代码示例 )

将多个输出中的hls属性设置为单独的片段代码