Проблема заключается в следующем: у Джейн есть друзья, с которыми она связывает номер. Я должен выводить друзей из наименьшего количества понравившихся симпатий.Как вывести обратную сторону карты [Java]
Мое основное любопытство заключается в том, как изменить порядок значений карты при выводе. В моем коде мне пришлось извлечь значения через Iterator
(мне не удалось напрямую использовать коллекцию), а затем сохранить каждую строку в ArrayList
, вставив каждый следующий элемент в индекс 0. Это, в результате, отменило порядок, который работал, я полагаю.
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