Użyj drugiej ArrayList dla 3 ciągów, a nie prymitywnej tablicy. To znaczy.
private List<List<String>> addresses = new ArrayList<List<String>>();
Wtedy można mieć:
ArrayList<String> singleAddress = new ArrayList<String>();
singleAddress.add("17 Fake Street");
singleAddress.add("Phoney town");
singleAddress.add("Makebelieveland");
addresses.add(singleAddress);
(myślę, że jakieś dziwne rzeczy mogą się zdarzyć z typu skasowaniem tutaj, ale nie sądzę, powinna ona znaczenia tutaj)
Jeśli” Ponownie ustawiona na użycie prymitywnej tablicy, wymagana jest tylko niewielka zmiana, aby twój przykład zadziałał. Jak wyjaśniono w innych odpowiedziach, rozmiar tablicy nie może być zawarty w deklaracji. Więc zmiana:
private ArrayList<String[]> addresses = new ArrayList<String[3]>();
do
private ArrayList<String[]> addresses = new ArrayList<String[]>();
zadziała.
dlaczego nie ma osobną klasę? – r3zn1k
Ostatecznie proponuję osobną klasę, jeśli ten kod ma trwać. Być może interesuje Cię zapach kodu opisany jako "Pierwotna obsesja". – Grundlefleck
Dziękuję wszystkim za doskonałe odpowiedzi. Sądzę, że powinienem zaakceptować, że lepiej jest użyć do tego oddzielnej klasy. – Johan