当前位置: 代码迷 >> J2SE >> 请问一个java的map有关问题
  详细解决方案

请问一个java的map有关问题

热度:6   发布时间:2016-04-24 00:52:39.0
请教一个java的map问题
我期望的输出是:one翻译:一
two翻译:二
three翻译:三
但实际情况是two翻译:二
one翻译:一
three翻译:三
源代码如下:请帮忙看下,多谢!


Java code
import java.util.*;public class Ex20{    public static void main(String[] args){        String[] en={"one","two","three"};        String[] ch={"一","二","三"};        Map<String,String> map = new HashMap<String, String>();        for(int i=0;i<en.length;++i){            map.put(en[i], ch[i]);        }        for(Map.Entry<String, String> obj:map.entrySet()){        System.out.println(obj.getKey()+"翻译:"+obj.getValue());        }    }}


------解决方案--------------------
HashMap是无序的。
应该用是LinkedHashMap.
这个是按顺序。
或者用TreeMap进行排序。
------解决方案--------------------
如果是用TreeMap按你说的one two three 排序要自定义规则,而且这个规则不好定。
直接用LinkedHashMap,插入时按插入顺序就固定了位置。
  相关解决方案