Java 集合--Map--HashMap

2022-09-09 09:56:46

目录

Java 集合---Map

在字典中添加内容并显示:

打印输出value的值:

打印输出key和value的值

对字典进行查询

例程:

例题:


Java 集合---Map

1. Map
1)Map中的数据是以键值对(key-value)的形式存储的;
2)key-value以Entry类型的对象实例存在;
3)可以通过key值快速地查找value;
4)一个映射不能包含重复的键;
5)每个键最多对只能映射到一个值。
2. HashMap
1)基于哈希表的Map接口的实现;
2)允许使用null值(value)和null键(key);
3)key值不允许重复;
4)HashMap中的Entry对象是无序排列的。

在字典中添加内容并显示:

打印输出value的值:

使用 对象名.put ( key,value) 的方法添加一个键值对。

打印输出key和value的值

输出Map类中所有的键值对 可以使用指向Map的实例化对象调用 entrySet() 方法,返回一个entry类的对象,对象集合里面包含了Map类当中所有的键值对。

打印输出:

对字典进行查询

查找的思路:通过keySet方法找到所有的key值并放入到集合中,将这个集合独立出来,再通过遍历集合来判断是否有相同的值.
通过keySet() 获取map 中 key 的集合;
通过key值获取value值使用 对象.get(key);

例程:

Goods

package com.imooc.set;

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;
	}

	//getter和setter方法
	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;
	}
	public String toString(){
		return "商品编号:"+id+",商品名称:"+name+",商品价格:"+price;
	}
}
package com.imooc.set;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class GoodsTest {

	public static void main(String[] args) {

		Scanner console = new Scanner(System.in);
		// 定义HashMap对象
		Map<String, Goods> goodsMap = new HashMap<String, Goods>();
		System.out.println("请输入三条商品信息:");
		int i = 0;
		while (i < 3) {
			System.out.println("请输入第" + (i + 1) + "条商品信息:");
			System.out.println("请输入商品编号:");
			String goodsId = console.next();
			// 判断商品编号id是否存在
			if (goodsMap.containsKey(goodsId)) {
				System.out.println("该商品编号已经存在!请重新输入!");
				continue;
			}
			System.out.println("请输入商品名称:");
			String goodsName = console.next();
			System.out.println("请输入商品价格:");
			double goodsPrice = 0;
			try {
				goodsPrice = console.nextDouble();
			} catch (java.util.InputMismatchException e) {
				System.out.println("商品价格的格式不正确,请输入数值型数据!");
				console.next();
				continue;
			}
			Goods goods = new Goods(goodsId, goodsName, goodsPrice);
			// 将商品信息添加到HashMap中
			goodsMap.put(goodsId, goods);
			i++;
		}
		// 遍历Map,输出商品信息
		System.out.println("商品的全部信息为:");
		Iterator<Goods> itGoods = goodsMap.values().iterator();
		while (itGoods.hasNext()) {
			System.out.println(itGoods.next());
		}
				
	}

}

例题:

  • 作者:紫金小飞侠
  • 原文链接:https://blog.csdn.net/yangshengwei230612/article/details/103628322
    更新时间:2022-09-09 09:56:46