HashMapを使用して2列のCSVファイルからデータを取得しました。これは辞書スタイルのアプリで使用するためのものです。1つの列には用語が含まれ、2番目の列には定義が含まれます。これらは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();
これにより、条件が設定された状態でアプリが読み込まれますが、順序は完全にあいまいです。元の順序と同じ順序で印刷するにはどうすればよいですか?