0

我有一个 Map 并通过使用转换为 charsequence[]

final CharSequence[] treatmentNameList = treatmentListMap.keySet().toArray(new CharSequence[treatmentListMap.size()]);

但是 charsequence[0] 和 map 0 位置的值没有变化。如何在字符序列和地图中获得相同的值。我也试过这个

final CharSequence[] treatmentNameList = treatmentListMap.keySet().toArray(new CharSequence[0]);
4

3 回答 3

1

你得到一把钥匙Set。集合通常不保证任何顺序,因此不同调用的顺序不同。LinkedHashMap如果您能够控制您正在使用的地图的实施,您可能会更幸运。有关它们的更多信息,请参阅 Javadocs。

这个帖子:

Java 的 LinkedHashMap 是否维护键的顺序?

为您提供更多信息。

于 2013-07-30T13:10:52.897 回答
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);
    }
}

}

于 2013-07-30T13:45:22.410 回答
0

请阅读 CharSequence 的 javadoc。您看过http://docs.oracle.com/javase/6/docs/api/java/lang/CharSequence.html吗?

于 2013-07-30T13:22:28.683 回答