問題は次のようになります。Janeには、番号を関連付ける友人がいます。私は、好きなもののうち、最も好きなものまで、友達を出力しなければなりません。マップの逆行を出力する方法[Java]
私の主な好奇心は、出力時にマップ値の順序を逆にする方法です。 私のコードでは、Iterator
(私はコレクションを直接使用することができませんでした)の値を抽出し、インデックス0に各連続する要素を挿入してArrayList
に各文字列を格納しなければなりませんでした。私は思った。
import java.util.*;
import java.io.*;
import static java.lang.System.*;
public class Friends {
public static void main(String args[]) throws IOException
{
Scanner line = new Scanner(new File("friends.dat"));
int trials = line.nextInt();
for(int k = 0 ; k < trials ; k++)
{
TreeMap<Integer, String> m = new TreeMap<Integer,String>();
int subtrials = line.nextInt();
for(int a = 0; a < subtrials ; a++)
{
String name = line.next();
int likes = line.nextInt();
m.put(likes,name);
}
Iterator iter = m.values().iterator(); //**Code of interest starts here**
ArrayList<String> list = new ArrayList<String>();
while(iter.hasNext()) {
list.add(0, (String)iter.next());
}
for(int a = 0 ; a < list.size() ; a++)
{
if(a == list.size() - 1)
out.print(list.get(a));
else
out.print(list.get(a) + ", ");
}
out.println();
}
}
}
、それはインデックスゼロで各要素を追加することと同じように同等です。私はMapオブジェクトから直接出力するときに何かを期待していました。 –
.reverse()は、0の位置に各要素を連続して挿入するよりはるかに効率的です。 – AJNeufeld