Wielowymiarowe tablice długości w Javie
Jak znaleźć długości wielowymiarowej tablicy z nieporównywalnymi indeksami?
Na przykład mam int[][] pathList = new int[6][4]
Bez twardego kodowania indeksów, muszę znaleźć "6" i "4".
Mogę znaleźć 6 z pathList.length
, ale jak uzyskać "4"?
6 answers
To da ci długość tablicy w indeksie i
pathList[i].length
Należy zauważyć, że w przeciwieństwie do C lub C++, Długość elementów tablicy dwuwymiarowej w Javie nie musi być równa. Na przykład, gdy pathList
jest instancją równą new int[6][]
, może pomieścić 6 instancji int []
, z których każda może mieć inną długość.
Więc kiedy tworzysz tablice tak, jak pokazałeś w swoim pytaniu, możesz równie dobrze zrobić
pathList[0].length
Ponieważ wiesz, że wszystkie one mają tej samej długości. W pozostałych przypadkach należy dokładnie zdefiniować długość drugiego wymiaru - może to być maksimum długości wszystkich elementów, a może minimum. W większości przypadków, aby podjąć decyzję, musisz iterować wszystkie elementy i odczytać ich długość]}
for(int i = 0; i < pathList.length; i++)
{
int currLen = pathList[i].length;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-11 01:28:55
To jest dla trójwymiarowej tablicy.
int x[][][]=new int[5][8][10];
System.out.println(x.length+" "+x[1].length+" "+x[0][1].length);
Wyjście : 5 8 10
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-20 07:35:06
Java ma "postrzępione" wielowymiarowe tablice, co oznacza, że każdy "wiersz" w Twojej dwuwymiarowej tablicy może mieć różną liczbę komponentów. Jeśli możesz założyć, że każdy wiersz ma taką samą liczbę elementów, użyj:
pathList[0].length;
W przeciwnym razie będziesz musiał iterację:
int maxRowLength = 0;
for (int i = 0; i < pathList.length; i++) {
if (maxRowLength < pathList[i].length) {
maxRowLength = pathList[i].length;
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-11 01:22:22
Dla tablicy 2 D:-
int x[][] = new int[6][12];
System.out.println(x.length + " " + x[1].length);
Wyjście: 6 12
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-20 08:08:45
W Javie możemy zdefiniować tablicę tablic, którą nazywamy wielowymiarową arrays.By array of arrays mamy na myśli, że pojedynczy elment naszej tablicy jest ponownie tablicą (w Javie może być wielokrotnej długości). aby znaleźć Długość wielu tablic o wszystkich podzakresach tej samej wielkości, możemy użyć:
int[][]a=new int[3][3];//let a[][] be my array
a.length will work. //a is an object of proxy class and length is its property.
Jednakże, jeśli masz podparyski o różnych rozmiarach, musisz to powtórzyć.
for(i=0;i<a.length;i++)
int cur_size=a[i].length;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-31 10:13:39
Długość tablicy 3-D
int[][][] a = new int[2][3][7];
int length=0;
for(int[][] i:a){
for(int j[]:i){
length+=j.length;
}
}
System.out.println(length);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-09 14:05:40