Java 映射到Charsequence[]但不按顺序

Java 映射到Charsequence[]但不按顺序,java,android,Java,Android,我有一个映射并使用 final CharSequence[] treatmentNameList = treatmentListMap.keySet().toArray(new CharSequence[treatmentListMap.size()]); 但是charsequence[0]和map 0位置的值没有变化。如何在charsequence和map中获得相同的值。 我也试过这个 final CharSequence[] treatmentNameList = treatmentLis

我有一个映射并使用

final CharSequence[] treatmentNameList = treatmentListMap.keySet().toArray(new CharSequence[treatmentListMap.size()]);
但是charsequence[0]和map 0位置的值没有变化。如何在charsequence和map中获得相同的值。 我也试过这个

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

您将获得一个密钥集。集合一般不保证任何顺序,因此不同调用的顺序不同。如果您能够控制正在使用的映射的实现,那么使用
LinkedHashMap
可能会更幸运。有关它们的更多信息,请参阅Javadocs

本帖:


有更多信息供您参考。

请阅读javadoc中的CharSequence。您看到了吗?

正如用户1111284所建议的,它非常有效。请查看下面的代码

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);
    }
}
公共类映射到CharsSequenceTest{
公共静态void main(字符串[]args){
LinkedHashMap contents=新建LinkedHashMap();
内容。放置(“黄铜”、“棒”);
内容物。放入(“银”、“匙”);
内容。放置(“黄金”、“戒指”);
内容。放置(“铁”、“板”);
Set=contents.keySet();
final CharSequence[]CharSequence=set.toArray(新的CharSequence[contents.size()]);
for(CharSequence c:CharSequence){
系统输出打印ln(c);
}
}

}

您能提供一个输入和预期输出的示例吗?0-treatmentListMap 1-treatmentListMap…….在charsequence[0]=我期待铁的维生素