我有一个多维字符数组:
board = new char[3][3];
在我的一个类中代表一个井字游戏,我已经初始化了它。
将其展平为一个数组的最佳方法是什么?
最佳答案
int[][] x = { { 1, 2 }, { 3, 4 } };
int [] flatten = Arrays.stream(x)
.flatMapToInt(Arrays::stream)
.toArray();
使用流 api 这很简单。
如果您使用的是 char [][]
:
char[][] board = {
{ 'x', 'o', ' ' },
{ ' ', 'o', 'x' },
{ ' ', 'o', 'x' },
};
StringBuilder sb = Arrays.stream(board)
.flatMapToInt(x -> IntStream.range(0, x.length).map(i -> x[i]))
.mapToObj(x -> (char) x)
.collect(StringBuilder::new, StringBuilder::append, StringBuilder::append);
char[] chars = new char[sb.length()];
sb.getChars(0, sb.length(), chars, 0);
关于java - 如何将 char[][] 扁平化为 char[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52898850/