您的位置:首页 > 产品设计 > UI/UE

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

2014-08-31 09:50 826 查看
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.以上介绍的小例子希望可以帮助大家。

  

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: