首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问一个java的map有关问题

2012-06-05 
请教一个java的map问题我期望的输出是:one翻译:一two翻译:二three翻译:三但实际情况是two翻译:二one翻译:

请教一个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,插入时按插入顺序就固定了位置。

热点排行