假設我有一個陣列,它采用“Pessoal”型別的實體:
Pessoal[] teste = new Pessoal[6];
現在假設我有 2 個位于陣列串列中的陣列串列:
static ArrayList<Pessoal> lista_de_profs; // This one has 4
static ArrayList<Pessoal> lista_de_infos; // And this one has 2, matching the 6 on "teste"
// these arrayslists have instances of the type "Pessoal"
ArrayList<ArrayList<Pessoal>> lista_de_docentes = new ArrayList<>();
lista_de_docentes.add(lista_de_profs);
lista_de_docentes.add(lista_de_infos);
如何遍歷包含更多陣列串列(lista_de_profs 和 lista_de_infos)的陣列串列(lista_de_docentes),并獲取它們的實體,以便將它們放入陣列中?
如果 teste 的長度為 4,則此方法有效
for (int i = 0; i < teste.length; i ){
teste[i] = lista_de_profs.get(i);
}
但這僅涵蓋一個陣列串列,我想要“lista_de_docentes”中的所有串列,它們是:“lista_de_profs”和“lista_de_infos”
*這里有一些代碼,語言是葡萄牙語,但我可以把它改成英文,如果它變得混亂。
我希望我很清楚,謝謝。
uj5u.com熱心網友回復:
您可以將所有“Pessoal”元素收集到一個陣列串列中,然后將這些元素移動到您的陣列中
List<Pessoal> all= lista_de_docentes.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
for (int i =0; i < all.size(); i )
teste[i] = all.get(i);
或者你可以直接創建陣列(以防你不關心大小)
Pessoal[] teste = lista_de_docentes.stream()
.flatMap(List::stream)
.collect(Collectors.toList())
.toArray(Pessoal[]::new);
uj5u.com熱心網友回復:
您可以使用流 API執行此操作。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Collectors;
public class Pessoal {
public static void main(String[] args) {
ArrayList<Pessoal> lista_de_profs = new ArrayList<>();
ArrayList<Pessoal> lista_de_infos = new ArrayList<>();
ArrayList<ArrayList<Pessoal>> lista_de_docentes = new ArrayList<>();
lista_de_docentes.add(lista_de_profs);
lista_de_docentes.add(lista_de_infos);
Pessoal[] teste = lista_de_docentes.stream()
.flatMap(l -> l.stream())
.collect(Collectors.toList())
.toArray(new Pessoal[0]);
System.out.println(Arrays.toString(teste));
}
}
lista_de_docentes.stream()創建一個流,其中每個元素都有 typeArrayList<Pessoal>。flatMap回傳一個流,其中每個元素都有 typePessoal。- 所有的 stream[
Pessoal] 元素都被收集并放入一個List中。 - 方法toArray(介面
List)將 轉換List為陣列。
或者,如果您不想使用流:
import java.util.ArrayList;
import java.util.Arrays;
public class Pessoal {
public static void main(String[] args) {
ArrayList<Pessoal> lista_de_profs = new ArrayList<>();
ArrayList<Pessoal> lista_de_infos = new ArrayList<>();
ArrayList<ArrayList<Pessoal>> lista_de_docentes = new ArrayList<>();
lista_de_docentes.add(lista_de_profs);
lista_de_docentes.add(lista_de_infos);
ArrayList<Pessoal> temp = new ArrayList<>();
for (ArrayList<Pessoal> list : lista_de_docentes) {
for (Pessoal p : list) {
temp.add(p);
}
}
Pessoal[] teste = new Pessoal[temp.size()];
temp.toArray(teste);
System.out.println(Arrays.toString(teste));
}
}
順便說一句,您應該考慮采用Java 命名約定。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/530449.html
標籤:爪哇数组数组列表
