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;
  }
    
}
目录
相关文章
|
2月前
|
存储 安全 Java
Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
【10月更文挑战第17天】Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
78 2
|
2月前
|
存储 Java
告别混乱!用Java Map优雅管理你的数据结构
【10月更文挑战第17天】在软件开发中,随着项目复杂度增加,数据结构的组织和管理至关重要。Java中的Map接口提供了一种优雅的解决方案,帮助我们高效、清晰地管理数据。本文通过在线购物平台的案例,展示了Map在商品管理、用户管理和订单管理中的具体应用,有效提升了代码质量和维护性。
97 2
|
14天前
|
存储 缓存 安全
Java 集合江湖:底层数据结构的大揭秘!
小米是一位热爱技术分享的程序员,本文详细解析了Java面试中常见的List、Set、Map的区别。不仅介绍了它们的基本特性和实现类,还深入探讨了各自的使用场景和面试技巧,帮助读者更好地理解和应对相关问题。
34 5
|
26天前
|
存储 缓存 安全
Java 集合框架优化:从基础到高级应用
《Java集合框架优化:从基础到高级应用》深入解析Java集合框架的核心原理与优化技巧,涵盖列表、集合、映射等常用数据结构,结合实际案例,指导开发者高效使用和优化Java集合。
38 4
|
1月前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
33 2
|
1月前
|
存储 Java
判断一个元素是否在 Java 中的 Set 集合中
【10月更文挑战第30天】使用`contains()`方法可以方便快捷地判断一个元素是否在Java中的`Set`集合中,但对于自定义对象,需要注意重写`equals()`方法以确保正确的判断结果,同时根据具体的性能需求选择合适的`Set`实现类。
|
1月前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
1月前
|
存储 Java 开发者
在 Java 中,如何遍历一个 Set 集合?
【10月更文挑战第30天】开发者可以根据具体的需求和代码风格选择合适的遍历方式。增强for循环简洁直观,适用于大多数简单的遍历场景;迭代器则更加灵活,可在遍历过程中进行更多复杂的操作;而Lambda表达式和`forEach`方法则提供了一种更简洁的函数式编程风格的遍历方式。
|
1月前
|
Java 开发者
|
1月前
|
存储 Java API
Java交换map的key和value值
通过本文介绍的几种方法,可以在Java中实现Map键值对的交换。每种方法都有其优缺点,具体选择哪种方法应根据实际需求和场景决定。对于简单的键值对交换,可以使用简单遍历法或Java 8的Stream API;对于需要处理值不唯一的情况,可以使用集合存储或Guava的Multimap。希望本文对您理解和实现Java中的Map键值对交换有所帮助。
40 1