个人技术分享

今天做题遇到一个问题:就是需要写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);

	}
}