hashMap可以很方便得得到某个key索引的值,但是如果要遍历hashMap,有什么办法可以很方便得得到第i个值?(如同get(i))

解决方案 »

  1.   

    HashMap好像没有这样的方法。
    可以用ArrayList等代替
    HashMap hashmap = new HashMap();
    hashmap.put("1","hashmap");
    System.out.println(hashmap.get("1"));//只能根据键值取
    ArrayList array = new ArrayList();
    array.add("array");
    System.out.println(array.get(0));//可以根据i遍历
      

  2.   

    不可以,因为hashmap继承自MAP。呵呵。你可以去参考一下数据结构。MAP和Collection有本质的区别。不是有顺序的。所以没有办法定义你这个i。
      

  3.   

    HashMap是不可以的,用LinkedHashMap就可以
      

  4.   

    LinkedHashMap好像也不行哦,可以通过如下方法:
      public static Map.Entry getMapByIndex(HashMap hashmap, int i) {
        HashMap map = hashmap;
        Set entrySet = map.entrySet();
        Object[] objs = entrySet.toArray();
        if (i > -1 && i < objs.length) {
          return (Map.Entry) objs[i];
        }
        return null;
      }
      

  5.   

    单纯的HaskMap做不到,你可以设计一个类,包含下面的代码,就能实现:
    HashMap map = new HashMap();
    ArrayList list = new ArrayList();
    public void put(Object key,Object value)
    {
    this.map.put(key,value);
    this.list.add(key);
    }
    public String[] keys()
    {
    return (String[])list.toArray(new String[0]);
    }
    public Object get(Object key)
    {
    return this.map.get(key);
    }
      

  6.   

    robotcrawl(下树之猴) :当然不能直接用get(i)
    public static void main(String args[]){
            LinkedHashMap h = new LinkedHashMap();        
            h.put("one", "a");
            h.put("two", "b");
            h.put("three", "c");
            
            ArrayList e = new ArrayList(h.entrySet());
           
            System.out.println(e);
    }看一下结果就好了
      

  7.   

    to fog628:
    "HashMap是不可以的,用LinkedHashMap就可以"我不知道你上面这句话什么意思,按照你最后的那个解法,用LinkedHashMap与HashMap有什么区别,你能告诉我吗?
      

  8.   

    LinkedHashMap感觉有点像一个HashMap  +  LinkedArrayListLinkedHashMap数据的存放还是和HashMap一样,是根据hashCode来定位的,但是不同的每一个存进去的对象还通过双重链表把所有对的链在一起,所以迭代器是根据各元素的插入顺序来访问的,更多的,去Google一下或找点书查一下吧
      

  9.   

    LinkedHashMap 是 HashMap的子类,继承了HashMap的方法,又有自己的新的方法!
      

  10.   

    public static void main(String[] args{
    HashMap<String,Object> hashmap = new HashMap<String,Object>();
    Iterator it =hashmap.keySet().iterator();
    while (it.hasNext()){
    hashmap.get((String)it.next());
    }
    }
    可以通过hashmap.keySet().iterator();
    得到hashmap的key的迭代器。
    key用String,然后自己可以写一个Object get(String s)方法来得到
      

  11.   

    Iterator i = hashMap.entrySet.iterator();
    while(i.hasNext)
    {
        Map.Entry map = (Map.Entry)i.next();
        Object Key = map.getKey();
        Object Value = map.getValue();
    }