【发布时间】:2014-08-01 02:58:56
【问题描述】:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import mainak.faisal;
import mainak.pulkit;
public class StartingPoint {
public static void main( String trav[] ) {
final Map<String, List<String>> paramMap = new HashMap<>();
List<String> list1 = new ArrayList<String>();
list1.add("1");
paramMap.put("segment", list1);
list1.clear();
list1.add("2");
paramMap.put("subDepartment", list1);
list1.clear();
list1.add("3");
paramMap.put("officerTitle", list1);
for( Map.Entry<String, List<String>> entry : paramMap.entrySet() ) {
String key = entry.getKey();
System.out.println("ACTIONKEY"+"------"+key);
for (String value : entry.getValue()) {
System.out.println("ACTIONVALUE-----"+value);
}
}
}
}
预期输出:
ACTIONKEY------segment
ACTIONVALUE-----1
ACTIONKEY------subDepartment
ACTIONVALUE-----2
ACTIONKEY------officerTitle
ACTIONVALUE-----3
但它的表现:
ACTIONKEY------segment
ACTIONVALUE-----3
ACTIONKEY------subDepartment
ACTIONVALUE-----3
ACTIONKEY------officerTitle
ACTIONVALUE-----3
为什么会这样?如何在不制作不同列表的情况下达到预期的效果?
【问题讨论】:
-
3 个键的值都相同(即
list1)
标签: java list arraylist map hashmap