l_holdsamount_map.put(33, 1.0);//
l_holdsamount_map.put(34, 2.0);//
l_holdsamount_map.put(36, 1.0);//
Iterator keyValuePairs1 = l_holdsamount_map.entrySet().iterator(); for (int icount = 0; icount < l_holdsamount_map.size(); icount++) {
Map.Entry entry = (Map.Entry) keyValuePairs1.next();
Object tid = entry.getKey();
Object damount = entry.getValue();
System.out.println(tid+","+damount);
}上面这段代码 输出 为:
34,2.0
33,1.0
36,1.0我明明是按照
33,1.0
34,2.0
36,1.0
添加的,输出的时候顺序怎么变了,这个是怎么回事的呀!
l_holdsamount_map.put(34, 2.0);//
l_holdsamount_map.put(36, 1.0);//
Iterator keyValuePairs1 = l_holdsamount_map.entrySet().iterator(); for (int icount = 0; icount < l_holdsamount_map.size(); icount++) {
Map.Entry entry = (Map.Entry) keyValuePairs1.next();
Object tid = entry.getKey();
Object damount = entry.getValue();
System.out.println(tid+","+damount);
}上面这段代码 输出 为:
34,2.0
33,1.0
36,1.0我明明是按照
33,1.0
34,2.0
36,1.0
添加的,输出的时候顺序怎么变了,这个是怎么回事的呀!
如果要顺序的话可以用:java.util.LinkedHashMap 它是有序的
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;import org.apache.commons.collections.CollectionUtils;public class MapUtil {
public static void main(String [] args ){
HashMap map = new HashMap();
map.put(34, 1.0);
map.put(33, 2.0);
map.put(36, 1.0);
Iterator it = map.entrySet().iterator();
// while(it.hasNext()){
// Map.Entry entry = (Map.Entry)it.next();
// System.out.println(entry.getKey()+"--"+entry.getValue());
// }
for (int icount = 0; icount < map.size(); icount++) {
Map.Entry entry = (Map.Entry)it.next();
System.out.println(entry.getKey()+"--"+entry.getValue());
}
}}我的输出结果是:
34--1.0
36--1.0
33--2.0map 是无序的 要想有序的输出就要用到 Collections.sort() 方法或者实现 Comparable 接口
linkedHashMap 实现的Map才是有序的