今天做题遇到一个问题:就是需要写String类型的二维数组时,我蒙圈了。后来查了资料发现,String类型的二维数组其实是由若干个一维数组构成的。
1.先初始化一个二维数组:List<List<String>> list = new ArrayList<>();
2.初始化几个String类型的值:
String s1 = "abc ";
String s2 = "cba ";
String s3 = "def ";
String s4 = "fed ";
String s5 = "xyz ";
String s6 = "zyx "
3.把Sring类型全部放到一个一维数组里面:String strx[] = { s1, s2, s3, s4, s5, s6 };
4.然后构建二维数组,该二维数组有几行就循环几次,每一行就是一个一维数组:
int cnt = 0;//cnt是strx数组的索引
for (int i = 0; i < 3; i++) {
List<String> str = new ArrayList<>();//每一个一维数组都必须要new一个对象,每new一次就是一行
str.add(strx[cnt++]);
str.add(strx[cnt++]);//这两行是把strx数组的两个元素放到同一个一维数组里面,同时cnt要后移指向下一个数组元素
list.add(str);//把一维数组加入到二维数组里面,每add一次就是加入一行一维数组
}
看一下完整代码
package cnm;
import java.util.*;
public class Test {
public static void main(String[] args) {
List<List<String>> list = new ArrayList<>();
String s1 = "abc ";
String s2 = "cba ";
String s3 = "def ";
String s4 = "fed ";
String s5 = "xyz ";
String s6 = "zyx ";
String strx[] = { s1, s2, s3, s4, s5, s6 };
int cnt = 0;//cnt是strx数组的索引
for (int i = 0; i < 3; i++) {
List<String> str = new ArrayList<>();//每一个一维数组都必须要new一个对象,每new一次就是一行
str.add(strx[cnt++]);
str.add(strx[cnt++]);//这两行是把strx数组的两个元素放到同一个一维数组里面,同时cnt要后移指向下一个数组元素
list.add(str);//把一维数组加入到二维数组里面,每add一次就是加入一行一维数组
}
System.out.println(list);
}
}