集合——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周学习总结
Groovymap 集合 ( map 集合遍历 | 使用 map 集合的 each 方法遍历 map 集合 | 代码示例 )