Java集合之map 集合使用

简介: Java集合之map 集合使用

Java集合中的四种遍历方式:

package cn.javabs.demo;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
 * Map集合的四种运用方法
 * @author MrYang
 */
public class MapDemo {
  
  public static void main(String[] args) 
  {
     Map<Integer, String> map = new HashMap<Integer, String>();
     map.put(1, "Java");
     map.put(2, "javaWeb");
     map.put(3, "JavaEe");
     map.put(4, "JavaEe");
     map.put(4, "JavaEe");// 这里有两个4,且内容重复  会有一个进行舍弃
     System.out.println(map.size());
     // 第一种:
     /*
      * Set<Integer> set = map.keySet(); //得到所有key的集合
      * 
      * for (Integer it : set)
                  *  { 
                  * String str = map.get(it);
      *     System.out.println(it + "     " + str); 
      *   }
      */
      System.out.println("第一种:通过Map.keySet遍历key和value:");
      for (Integer it : map.keySet()) 
        {
          //map.keySet()返回的是所有key的值
          String str = map.get(it);//得到每个key多对用value的值
          System.out.println(it + "     " + str);
      }
      // 第二种:
      System.out.println("第二种:通过Map.entrySet使用iterator遍历key和value:");
      Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
      while (it.hasNext()) {
           Map.Entry<Integer, String> entry = it.next();
             System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }
      // 第三种:推荐,尤其是容量大时
      System.out.println("第三种:通过Map.entrySet遍历key和value");
      for (Map.Entry<Integer, String> entry : map.entrySet()) 
      {
          //Map.entry<Integer,String> 映射项(键-值对)  有几个方法:用上面的名字entry
          //entry.getKey() ;entry.getValue(); entry.setValue();
          //map.entrySet()  返回此映射中包含的映射关系的 Set视图。
          System.out.println("key= " + entry.getKey() + " and value= "+ entry.getValue());
      }
      // 第四种:
      System.out.println("第四种:通过Map.values()遍历所有的value,但不能遍历key");
      for (String v : map.values()) 
      {
          System.out.println("value= " + v);
      }
    }
  }

Java集合中根据值取键【根据value取key值】

注意:
  在Java中,一个Key 是对应一个Value,但一个Value却可以对应多个Key。
  举个栗子:
    我的年龄是25岁,我的学号也是25号,那么根据25 找到的不一定是年龄age或者是学号sid。所以根据value取key值,值有很多个。
package cn.javabs.demo;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
/**
 * 根据value取key
 * @author MrYang
 */
public class MapDemo 
{
  public static void main(String[] args) 
  {
     Map<String, Object> map = new LinkedHashMap<String, Object>();  
          map.put("deviceName","computer");  //  设备名称
          map.put("deviceModel", "c1011");   //  设备型号
          map.put("deviceSize", "22.5");     //  设备尺寸
          map.put("deviceColor", "Black");   //  设备颜色
  }
  
  
  @SuppressWarnings("rawtypes")
  public static  String  getKeyByValue(Map map ,Object value)
  {
    String keys = "";//先定义一个keys  不止一个key
    Iterator it = map.entrySet().iterator();//获取迭代器对象it
    while (it.hasNext())
    {
      Map.Entry  entry = (Entry) it.next();
      Object obj = entry.getValue();
      if(obj != null && obj.equals(value))
      {
        keys = (String) entry.getKey();
      }
    }
    return keys;
  }
    
}
目录
相关文章
|
1天前
|
并行计算 Java API
Java List集合取交集的八种不同实现方式
Java List集合取交集的八种不同实现方式
5 0
|
1天前
|
存储 安全 算法
深入探索Java集合框架
深入探索Java集合框架
5 0
|
1天前
|
Java BI Serverless
Java8 Stream深度解析:30个案例3万字助你精通集合筛选、归约、分组与聚合操作
Java8 Stream深度解析:30个案例3万字助你精通集合筛选、归约、分组与聚合操作
8 0
|
1天前
|
Java API
java中Map遍历详解
java中Map遍历详解
|
1天前
|
算法 Java
Java数据结构与算法:用于处理不相交集合的合并和查找问题
Java数据结构与算法:用于处理不相交集合的合并和查找问题
|
2天前
|
Java
黑马Java 集合(下)
黑马Java 集合(下)
6 0
|
2天前
|
Java
黑马Java 集合(上)
黑马Java 集合(上)
4 0
|
2天前
|
存储 消息中间件 算法
Java中的集合框架详解:List、Set、Map的使用场景
Java中的集合框架详解:List、Set、Map的使用场景
|
2天前
|
存储 算法 Java
Java中的集合框架使用技巧
Java中的集合框架使用技巧
|
2天前
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
8 1