关于Map中key和Value的灵活获取(推荐给初学JAVA的受苦受难的兄弟姐妹们)

1、Map和Map.Entery区别

  笔者认为很多人误解这两个类,或者说不太会灵活应用,下面我来简单说一下我的理解(仅供参考)。

    →Map : 无可厚非,学过java的不管是小鸟还是老牛都已经敲得不想再敲了,是属于一个键值对的集合类,属于线程不安全的,关于Map线程安全的可以另外实现,以后会讲到。

    For Example: Map<String,Object> map = new HashMap<String,Object>();

      map.put("1",1);//分区1

      map.put("2",2);//分区1

    key和value只是我们自己定义的对象,并且key是唯一不重复的,value可以重复,仅此而已。

  

    →Map.Entry是一个Map的衍生类,功能更强大,可以通过 map.enteySet()获取,是一个实例化或后对象集,

    For Example: Map.Entery<String,Object> map = map.entrySet();

      map.put("1",1);//分区1

      map.put("2",2);//分区2

      是以一个Set容器承载的,可以迭代遍历,并且提供了getKey()和getValue(),setValue()等常用的方法;

  ★ example 1    

  public class TestMap {

    public static void main(String[] args) {

      Map<String, Object> map = new HashMap<String,Object>();

       map.put("1", "One");

       map.put("2", "Two");

       map.put("3", "Three");

       map.put("4", "Four");

        map.put("5", "Five");

      System.out.println(TestMap.mapConvertStringOne(map));

    }

    public static String mapConvertStringOne(Map<String,Object> mapEmp){

      StringBuilder returnString = new StringBuilder();

      Set<Map.Entry<String, Object>> set =  mapEmp.entrySet();

      Map.Entry<String, Object> entry = null;

      returnString.append("{");

      for(Iterator<Map.Entry<String, Object>> iterator2  = set.iterator();iterator2.hasNext();){

        entry = iterator2.next();

        returnString.append(entry.getKey());

        returnString.append(":");

        returnString.append(entry.getValue());

        if(iterator2.hasNext()){

           returnString.append(",");

         }

      }

       returnString.append("}");

       return returnString.toString();

    }

  }

 运行结果: {3:Three,2:Two,1:One,5:Five,4:Four}// 可以看出无序排列

  ★ example 2

  @SuppressWarnings("rawtypes")
   private static String mapConvertStringTwo(Map<String,Object> mapEmp){
      StringBuilder returnString = new StringBuilder();
      Set<String> keySet =  mapEmp.keySet();
      returnString.append("{");
      for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
         String key = (String) iterator.next();
         returnString.append(key);
         returnString.append(":");
         returnString.append(mapEmp.get(key));
         if(iterator.hasNext()){
    
            returnString.append(",");
         }
      }
      returnString.append("}");
      return returnString.toString();
 }
 运行结果 :  {3:Three,2:Two,1:One,5:Five,4:Four}// 可以看出无序排列

本人认为如果没有什么特殊处理 第二个例子更实用一些,简单易懂都是大家平时用的,另外关于性能方面HashMap性能相对HashTable更好,在开发上基本都是实用HashMap.以上介绍的小例子希望可以帮助大家。

  

    

时间: 2024-11-03 21:24:48

关于Map中key和Value的灵活获取(推荐给初学JAVA的受苦受难的兄弟姐妹们)的相关文章

Java集合篇六:Map中key值不可重复的测试

package com.test.collection; import java.util.HashMap; import java.util.Map; //Map中key值不可重复的测试 public class TestEquals { public static void main(String[] args) { String s1=new String("abc"); String s2=new String("abc"); Map map=new Has

Java Map中key用可变对象会是什么后果?

结论:put之后key变化了在get就get为null了 Scala代码 val map = new mutable.HashMap[java.util.List[String], String]() val key = new util.ArrayList[String]() map.put(key, "value") println(map) println(map.get(key).getOrElse("null")) key.add("11&quo

获取map中的一个value值以及遍历map获得map里所有key、value的值

前言: 1.声明一个map: Map map = new HashMap();2.向map中放值,注意:map是key-value的形式存放的.如: map.put(”sa”,”dd”); 3.从map中取值:String str = map.get(”sa”).toString();结果是:str = ”dd”;4.遍历一个map,从中取得key 和valueMap map = new HashMap() ; Iterator it = map.entrySet().iterator() ;w

【方法1】删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录

介绍 晚上无聊的时候,我做了一个測试题,測试题的大体意思是:删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录. 比如: I have a map with duplicate values: ("A", "1"); ("B", "2"); ("C", "2"); ("D", "3"); ("E", "

jsp页面使用el 按key获取map中的对应值

jsp页面使用el 按key获取map中的对应值 转自:<jsp页面使用el 按key获取map中的对应值>地址:http://blog.csdn.net/baple/article/details/18517359 jsp页面中的代码: <script type="text/javascript"> var msgTip = "${msgs['loginError']}"; alert(msgTip); </script> 注意

在map中一个key中存多个值

一说到map都想到key-value键值队存在.key可以为最多一个null的key. 今天开发中一个业务需求,在map中一个key中存多个对象. 我首先想到Map<String,List>造型来解决.尤其是那种一对多的可以这么设计. Map<String,List> map = new HashMap<String,List>();//模型就是这么个. for(int i=0;i<listObj.size();i++){ key = listObj.getId(

【方法2】删除Map中Value重复的记录,并且只保留Key最小的那条记录

根据guigui111111的建议:先把Map按Key从大到小排序,然后再把Key和Value互换.这也是一种很好的思路,我写了一下代码,顺便贴上来,供大家参考与分享. package shuai.study.map; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import j

JAVA中遍历Map和Set方法,取出map中所有的key

Java遍历Set集合 1.迭代器遍历: Set<String> set = new HashSet<String>(); Iterator<String> it = set.iterator(); while (it.hasNext()) { String str = it.next(); System.out.println(str); } 2.for循环遍历: for (String str : set) { System.out.println(str); }

将Map中的key和values转化为List

在项目开发中,常常会用到Map,而map的存放是无序的,它存放的是键值对,也就是一个键对应一个值.有时需要将Map的key和value转化为List来进行相关的操作,现在通过实例来实现Map的key和value的转化. 代码如下: package com.example; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import