如何在Java中迭代二维列表(列表列表)
给定一个 2D 列表,任务是在Java中迭代这个 2D 列表。
二维列表(列表列表)
2D列表是指列表的列表,即列表的每一行都是另一个列表。
[
[5, 10],
[1],
[20, 30, 40]
]
迭代 2D 列表:在Java中有两种迭代列表的方法。
- 使用循环遍历列表列表:
- 获取迭代的二维列表
- 我们需要两个 for-each 循环来成功地迭代 2D 列表。
- 在第一个 for-each 循环中,二维列表的每一行将被视为一个单独的列表
for (List list : listOfLists) { }
- 在第二个 for-each 循环中,每行中列表的每一项都会被单独取出
for (K item : list) { }
- 因此我们可以对这个项目进行任何操作。在这里,我们正在打印该项目。
下面是上述方法的实现:
// Java code to demonstrate the concept of // list of lists using loop import java.util.*; public class List_of_list { // Iterate the 2D list using loop // and print each element public static
void iterateUsingForEach(List - > listOfLists)
{
// Iterate the 2D list
// and print each element
System.out.println("[");
for (List
list : listOfLists) { System.out.print(" ["); for (K item : list) { System.out.print(" " + item + ", "); } System.out.println("], "); } System.out.println("]"); } // Driver code public static void main(String[] args) { // List of Lists ArrayList - > listOfLists
= new ArrayList
- >();
// Create N lists one by one
// and append to the list of lists
List
list1 = new ArrayList (); list1.add(5); list1.add(10); listOfLists.add(list1); List list2 = new ArrayList (); list2.add(1); listOfLists.add(list2); List list3 = new ArrayList (); list3.add(20); list3.add(30); list3.add(40); listOfLists.add(list3); // Iterate the 2D list iterateUsingForEach(listOfLists); } } 输出:
[ [ 5, 10, ], [ 1, ], [ 20, 30, 40, ], ]
- 使用迭代器迭代列表列表:
- 获取迭代的二维列表
- 我们需要两个迭代器来成功地迭代二维列表。
- 第一个迭代器将 2D 列表的每一行作为单独的列表进行迭代
Iterator listOfListsIterator = listOfLists.iterator();
- 2D列表的每一行都可以通过Iterator的next()方法得到
listOfListsIterator.next();
但是 next() 方法将 Iterator 作为 Object 的对象返回。因此我们需要将这个返回的对象转换成一个列表。
list = (List)listOfListsIterator.next();
- 第二个迭代器将分别迭代每一行中列表的每个项目
Iterator eachListIterator = list.iterator();
- 因此我们可以对这个项目进行任何操作。在这里,我们正在打印该项目。
下面是上述方法的实现:
// Java code to demonstrate the concept of // list of lists using iterator import java.util.*; class List_of_list { // Iterate the 2D list using Iterator // and print each element public static
void iterateUsingIterator(List - > listOfLists)
{
// Iterator for the 2D list
Iterator listOfListsIterator
= listOfLists.iterator();
System.out.println("[");
while (listOfListsIterator.hasNext()) {
// Type cast next() method
// to convert from Object to List
List list = new ArrayList (); list = (List )listOfListsIterator.next(); // Iterator for list Iterator eachListIterator = list.iterator(); System.out.print(" ["); while (eachListIterator.hasNext()) { System.out.print( " " + eachListIterator.next() + ", "); } System.out.println("], "); } System.out.println("]"); } // Driver code public static void main(String[] args) { // List of Lists ArrayList - > listOfLists
= new ArrayList
- >();
// Create N lists one by one
// and append to the list of lists
List
list1 = new ArrayList (); list1.add(5); list1.add(10); listOfLists.add(list1); List list2 = new ArrayList (); list2.add(1); listOfLists.add(list2); List list3 = new ArrayList (); list3.add(20); list3.add(30); list3.add(40); listOfLists.add(list3); // Iterate the 2D list iterateUsingIterator(listOfLists); } } 输出:
[ [ 5, 10, ], [ 1, ], [ 20, 30, 40, ], ]