Измените соответствующие объекты с помощью потоков JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Измените соответствующие объекты с помощью потоков Java

Сообщение Anonymous »

Предположим, у меня есть следующая структура:
class Person {
public String name;
public double netWorth;
public Person(String name, String netWorth) { this.name = name; this.netWorth = netWorth; }
}

и следующий поток:
Stream.of(
new Person("Jeff Bezos", 12),
new Person("Jeff Bezos", 165_345_678_910),
new Person("Jeff Bezos", 1_234),
new Person("Jeff Bezos(1)", 1_234),
new Person("Jeff Bezos(1)(2)", 42),
new Person("Bill Gates", 130_000_000_000));

с помощью API Java Streams я хочу преобразовать поток выше так, чтобы:
  • Person-ы с одинаковыми именами должны получать разные строки (путем добавления (i)) в конце имени
  • без циклов/операторов if/промежуточных терминаторов потока
  • порядок имен не имеет значения, например. из двух Person-ов с одинаковыми именами каждый из двух может получить (1) суффикс
например. на следующую карту:
new HashMap() {{
put("Jeff Bezos", 12);
put("Jeff Bezos(1)(1)(1)", 165_345_678_91);
put("Jeff Bezos(1)(1)(2)", 1_234);
put("Jeff Bezos(1)", 1_234);
put("Jeff Bezos(1)(2)", 42);
put("Bill Gates", 130_000_000_000);
}};

P.S. Сложность, порядок вещей: человек с самым высоким собственным капиталом должен получить самое чистое имя, например. с минимальными суффиксами и т. д.:
new HashMap() {{
put("Jeff Bezos", 165_345_678_91);
put("Jeff Bezos(1)(1)(1)", 1_234);
put("Jeff Bezos(1)(1)(2)", 12);
put("Jeff Bezos(1)(2)", 42);
put("Jeff Bezos(1)", 1_234);
put("Bill Gates", 130_000_000_000);
}};


Подробнее здесь: https://stackoverflow.com/questions/737 ... va-streams
Ответить

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

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

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

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

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