我已使用 HashMap 从 2 列 CSV 文件中检索数据。这适用于字典式应用程序 - 一列包含术语,第二列包含定义,这些定义通过 HashMap 链接到术语。
我的应用程序所做的第一件事是将术语列表打印为列表。但是,它们似乎都以随机顺序出现。
我希望它们保持与它们在 CSV 文件中的顺序相同(我不会依赖任何字母排序方法,因为我偶尔会有非标准字符,并且更愿意在源代码中进行字母排序)
这是我的代码,它从 CSV 文件中提取数据并将其打印到列表中:
String next[] = {}; // 'next' is used to iterate through dictionaryFile
final HashMap<String, String> dictionaryMap = new HashMap<String, String>(); // initialise a hash map for the terms
try {
CSVReader reader = new CSVReader(new InputStreamReader(getAssets().open("dictionaryFile.csv")));
while((next = reader.readNext()) != null) { // for each line of the input file
dictionaryMap.put(next[0], next[1]); // append the data to the dictionaryMap
}
} catch (IOException e) {
e.printStackTrace();
}
String[] terms = new String[dictionaryMap.keySet().size()]; // get the terms from the dictionaryMap values
terms = dictionaryMap.keySet().toArray(terms);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, terms));
ListView lv = getListView();
这会导致应用程序在条款到位的情况下加载,但它们的顺序完全模糊。如何让它们按照原来的顺序打印?