我正在使用地图并使用
转换为charsequence []final CharSequence[] treatmentNameList = treatmentListMap.keySet().toArray(new CharSequence[treatmentListMap.size()]);
但是,charsequence [0]和地图0的位置值不是变化的。如何在charsequence和map中获得相同的值。 我也尝试了这个
final CharSequence[] treatmentNameList = treatmentListMap.keySet().toArray(new CharSequence[0]);
答案 0 :(得分:1)
您正在获得密钥Set
。集合通常不保证任何订单,因此不同调用的顺序不同。如果您能够控制正在使用的地图的实现,那么LinkedHashMap
可能会更幸运。有关它们的更多信息,请参阅Javadocs。
这篇文章:
Does Java's LinkedHashMap maintain the order of keys?
为您提供更多信息。
答案 1 :(得分:1)
正如user1111284所建议的那样,它完美无缺。请查看以下代码
public class MapToCharSequenceTest {
public static void main(String[] args){
LinkedHashMap<String,String> contents = new LinkedHashMap<String,String>();
contents.put("brass","rod");
contents.put("Silver","spoon");
contents.put("gold","ring");
contents.put("iron","plate");
Set<String> set = contents.keySet();
final CharSequence[] charsequence = set.toArray( new CharSequence[contents.size()]);
for(CharSequence c : charsequence){
System.out.println(c);
}
}
}
答案 2 :(得分:0)
请阅读CharSequence的javadoc。你看过http://docs.oracle.com/javase/6/docs/api/java/lang/CharSequence.html吗?