(Java) Как сопоставить один столбец файла CSV с другим столбцом другого типа?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 (Java) Как сопоставить один столбец файла CSV с другим столбцом другого типа?

Сообщение Anonymous »

Итак, для этой задачи моя функция должна возвращать список 10 лучших мстителей с наибольшим количеством появлений (в
в порядке убывания).

Класс Avenger очень похож на базовый класс Person, однако здесь нет функций получения, есть только поля, которые представляют их имя, пол, внешний вид и т. д.

Код: Выделить всё

public class Avenger {
public final String name;
public final int appearances;
public final String gender;
public final int year;
public final String honorary;
public final String[] deaths;
public final String[] returns;
public final String notes;

public Avenger(String name,
int appearances,
String gender,
int year,
String honorary,
String[] deaths,
String[] returns,
String notes) {
this.name = name;
this.appearances = appearances;
this.gender = gender;
this.year = year;
this.honorary = honorary;
this.deaths = deaths;
this.returns = returns;
this.notes = notes;
}

public static Avenger valueOf(String line) {
String[] array = line.split(",");
String name = array[0];
int appearances = Integer.valueOf(array[1]);
String gender = array[2];
int year = Integer.valueOf(array[3]);
String honorary = array[4];
String[] deaths = new String[5];
String[] returns = new String[5];
String notes = array[15];

int index = 5;
int i = 0;
while (index < 15) {
deaths[i] = array[index++];
returns[i] = array[index++];
i++;
}
return new Avenger(name, appearances, gender, year, honorary, deaths, returns, notes);
}

@Override
public String toString() {
return "Avenger [name=" + name + ", appearances=" + appearances + ", gender=" + gender + ", year=" + year
+ ", honorary=" + honorary + ", deaths=" + Arrays.toString(deaths) + ", returns="
+ Arrays.toString(returns) + ", notes=" + notes + "]";
}
}
Моя функция получает 10 лучших ВИДОВ, и числа, которые она возвращает, верны.

Код: Выделить всё

static Function getTop10ByAppearances = a ->
a.map(s -> s.appearances).sorted((x, y) -> y - x).limit(10)
.map(p -> p.toString()).collect(Collectors.toList());
Однако мне не нужно, чтобы он возвращал числа, мне нужно, чтобы он возвращал ИМЕНА, соответствующие этим числам. Итак, мой вопрос: как я могу сопоставить то, что у меня есть, с именами, а затем вернуть List этих имен?

Подробнее здесь: https://stackoverflow.com/questions/720 ... erent-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»