Хранить «кортежи» значений в ArrayList в Java - PullRequest
0 голосов
/ 08 июля 2020

Я пытаюсь сохранить в коллекции пары имен и адресов. Есть ли способ сгруппировать эти значения в кортеж? Если да, то какую коллекцию я должен использовать для этого? Какую бы коллекцию я ни использовал, она должна иметь возможность добавить кортеж с этими значениями, удалить кортеж и перечислить кортежи в коллекции.

Спасибо.

Ответы [ 3 ]

1 голос
/ 08 июля 2020

2 варианта:

  1. Создайте класс значений, содержащий 2 нужных вам вещи.
  2. Или, для простых случаев, просто используйте класс Pair, который поставляется с большим количеством библиотек , включая знаменитую библиотеку Apache Commons. т.е. Pair<UUID, Event> pair = Pair.of(id, event)
0 голосов
/ 08 июля 2020

Вы можете создать класс

class Data {
    private String name;
    private String address;

    public Data(String name, String address) {
        this.name = name;
        this.address = address;
    }
    @Override
    public String toString() {
        return "Name: "+name+" and Address: "+address; 
    }
}

И в основном добавить имя и адрес в Arraylist и распечатать его.

public static void main(String[] args) throws IOException {
    List<Data> information = new ArrayList<>();
    information.add(new Data("John Doe", "Mars"));
    System.out.println(information);

}

Пример вывода: [Name: John Doe and Address: Mars]

0 голосов
/ 08 июля 2020

Возможным решением может быть создание пары классов. Затем вы можете создать экземпляр Pairs и добавить их в свой ArrayList.

import java.util.ArrayList;

public class Test {
  public static void main(String[] args) {
    Pair pair1 = new Pair(1, 2);
    Pair pair2 = new Pair(2, 3);
    ArrayList<Pair> arrayOfPair = new ArrayList();
    arrayOfPair.add(pair1);
    arrayOfPair.add(pair2);
    for (Pair p : arrayOfPair) {
      System.out.println(p);
    }
  }
}

class Pair<T> {
  T fst;
  T snd;

  public Pair(T fst, T snd) {
    this.fst = fst;
    this.snd = snd;
  }

  T getFst() { return fst; }

  T getSnd() { return snd; }

  public String toString() { return "(" + getFst() + "," + getSnd() + ")"; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...