Сопоставление вложенных парных объектов в списке с использованием потоков, сгруппированных по парному ключу.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Сопоставление вложенных парных объектов в списке с использованием потоков, сгруппированных по парному ключу.

Сообщение Anonymous »

Предположим, у меня есть вложенный объект, который содержит отдельную пару объектов String-Integer (назовем каждую такую ​​пару конечной точкой). Существует список под названием «пара», который содержит ровно два объекта конечной точки. И еще один список под названием «пары», который может содержать любое количество (скажем, n) записей «пары», и мне нужно собрать каждую уникальную пару строк вместе с соответствующими им целочисленными значениями в новом объекте.
Рассмотрите следующие классы для существующего объекта:

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

public class Endpoint {
private String key;
private Integer number;

public Endpoint(String key, Integer number) {
this.key = key;
this.number = number;
}

// Getters, Setters and toString()
}

public class Pair {
// It will have exactly 2 entries
List pair;

public Pair(List pair) {
this.pair = pair;
}

// Getters, Setters and toString()
}
Рассмотрим следующий объект (до преобразования), где пары — это список. Записи в парах могут быть в любом порядке:

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

pairs: [
pair: [{"p1",1000},{"p2",2000}],
pair: [{"p1",3000},{"p3",4000}],
pair: [{"p2",5000},{"p3",6000}],
pair: [{"p1",2000},{"p2",3000}],
pair: [{"p1",2001},{"p2",3001}],
pair: [{"p1",4000},{"p3",5000}],
pair: [{"p1",4001},{"p3",5001}],
pair: [{"p2",6000},{"p3",7000}],
pair: [{"p2",6001},{"p3",7001}]
]
Для заполнения результата рассмотрите следующие классы:

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

public class CustomEndpoint {
private String key;
// `numbers` can have any number of entries
private List numbers;

public CustomEndpoint(String key, List numbers) {
this.key = key;
this.numbers = numbers;
}

// Getters, Setters and toString()
}

public class CustomPair {
// It will have exactly 2 entries
List pair;

public CustomPair(List pair) {
this.pair = pair;
}

// Getters, Setters and toString()
}
Мне нужно собрать его следующим образом:

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

custom-pairs: [
custom-pair: {[{"p1", [1000,2000,2001]}, {"p2", [2000,3000,3001]}]},
custom-pair: {[{"p1", [3000,4000,4001]}, {"p3", [4000,5000,5001]}]},
custom-pair: {[{"p2", [5000,6000,6001]}, {"p3", [6000,7000,7001]}]}
]
где пользовательские пары — это список. Порядок записей в списке чисел должен сохраняться так же, как и для входной пары. например, поскольку 1000 в p1 было сопряжено с 2000 в p2, если 1000 является первой записью в числах List для p1, то 2000 также должно быть первым запись в числах Список для p2, для комбинации, в которой p1 и p2 соединены вместе.
Как я могу сделать это с помощью потоков в Java?

Подробнее здесь: https://stackoverflow.com/questions/723 ... irwise-key
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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