Java编程教程-Java Map接口

# Java Map接口

Map接口是基于键(key)和值(value)对的集合。每个键值对被称为一个条目(entry)。Map中的键是唯一的。

如果需要根据键进行搜索、更新或删Java Map接口除元素,那么Map是很有用的。

# Java Map层次结构

在Java中,有两个接口用于实现Map:Map和SortedMap,以及三个类:

HashMap、LinkedHashMap和TreeMap。Java Map的层次结构如下所示:

Map不允许重复的键,但可以有重复的值。HashMap和LinkedHashMap允许使用null键和null值,但TreeMap不允许使用null键或null值。

Map不能直接遍历,因此需要使用keySet()或entrySet()方法将其转换为Set。

类名描述

HashMap

HashMap是Map的实现,但它不维护任何顺序。

LinkedHashMap

LinkedHashMap是Map的实现,它继承自HashMap类,并且按照插入顺序维护元素顺序。

TreeMap

TreeMap是Map和SortedMap的实现,它按照升序维护元素顺序。

 # Java Map示例:非泛型(旧风格)

//非泛型import java.util.*;public class MapExample1 {  public static void main(String[] args) {    Map map=new HashMap();    //向map中添加元素    map.put(1,"Amit");    map.put(5,"Rahul");    map.put(2,"Jai");    map.put(6,"Amit");    //遍历Map    Set set=map.entrySet();//转换为Set以便遍历    Iterator itr=set.iterator();    while(itr.hasNext()){      //转换为Map.Entry以便分别获取键和值      Map.Entry entry=(Map.Entry)itr.next();      System.out.println(entry.getKey()+" "+entry.getValue());    }  }}输出:1 Amit2 Jai5 Rahul6 Amit

 # Java Map示例:泛型(新风格)

mport java.util.*;class MapExample2 {  public static void main(String args[]){    Map<Integer,String> map=new HashMap<Integer,String>();    map.put(100,"Amit");    map.put(101,"Vijay");    map.put(102,"Rahul");    //元素可以以任何顺序遍历    for(Map.Entry m:map.entrySet()){      System.out.println(m.getKey()+" "+m.getValue());    }  }}输出:102 Rahul100 Amit101 Vijay

# Java Map示例:按键比较(comparingByKey)

import java.util.*;class MapExample3 {  public static void main(String args[]){    Map<Integer,String> map=new HashMap<Integer,String>();         map.put(100,"Amit");      map.put(101,"Vijay");      map.put(102,"Rahul");      //返回包含此Map中的映射的Set视图    map.entrySet()     //返回以此集合为源的顺序流    .stream()     //根据提供的比较器进行排序    .sorted(Map.Entry.comparingByKey())     //对流中的每个元素执行操作    .forEach(System.out::println);   }}输出:100=Amit101=Vijay102=Rahul

# Java Map示例:按键比较(降序)

import java.util.*;class MapExample4 {  public static void main(String args[]){    Map<Integer,String> map=new HashMap<Integer,String>();         map.put(100,"Amit");      map.put(101,"Vijay");      map.put(102,"Rahul");      //返回包含此Map中的映射的Set视图    map.entrySet()     //返回以此集合为源的顺序流    .stream()     //根据提供的比较器进行排序    .sorted(Map.Entry.comparingByKey(Comparator.reverseOrder()))     //对流中的每个元素执行操作    .forEach(System.out::println);   }}输出:102=Rahul101=Vijay100=Amit

# Java Map示例:按值比较(comparingByValue)

import java.util.*;class MapExample5 {  public static void main(String args[]){    Map<Integer,String> map=new HashMap<Integer,String>();         map.put(100,"Amit");      map.put(101,"Vijay");      map.put(102,"Rahul");      //返回包含此Map中的映射的Set视图    map.entrySet()     //返回以此集合为源的顺序流    .stream()     //根据提供的比较器进行排序    .sorted(Map.Entry.comparingByValue())     //对流中的每个元素执行操作    .forEach(System.out::println);   }}输出:100=Amit102=Rahul101=Vijay

# Java Map示例:按值比较(降序)

import java.util.*;class MapExample6 {  public static void main(String args[]){    Map<Integer,String> map=new HashMap<Integer,String>();         map.put(100,"Amit");      map.put(101,"Vijay");      map.put(102,"Rahul");      //返回包含此Map中的映射的Set视图    map.entrySet()     //返回以此集合为源的顺序流    .stream()     //根据提供的比较器进行排序    .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))     //对流中的每个元素执行操作    .forEach(System.out::println);   }}

输出:

101=Vijay102=Rahul100=Amit
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值