2 回答

TA貢獻1784條經(jīng)驗 獲得超9個贊
如果數(shù)組從未以任何方式修改并且您想使用整個數(shù)組,那么您可以直接使用數(shù)組引用:
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{Readsheet.Stringvalue, Readsheet.Stringvalue, Readsheet.Stringvalue},
{Readsheet.Stringvalue, Readsheet.Stringvalue, Readsheet.Stringvalue},
},
Writesheet.Columns // <-- Array reference
));
如果可以修改數(shù)組,則可以創(chuàng)建整個數(shù)組的副本。有很多方法可以做到,我個人的偏好是Arrays.copyOf:
Arrays.copyOf(Writesheet.Columns, Writesheet.Columns.length) // <-- Copy of the entire array
如果您只需要數(shù)組的連續(xù)部分,則可以創(chuàng)建數(shù)組切片的副本:
Arrays.copyOfRange(Writesheet.Columns, 0, 3) // <-- Copy of a part of the array, indexes from 0 to 2
最后,如果您需要通過單獨的非連續(xù)索引提取元素并且不想Writesheet.Columns[...]多次鍵入,您可以使用索引流并使用Stream.map()以下方法提取值:
IntStream.of(0, 1, 2) // <-- Indexes here
.mapToObj(i -> Writesheet.Columns[i]).toArray()
更新:使用,作為分隔符將結(jié)果數(shù)組連接到字符串:
IntStream.of(0, 1, 2) // <-- Indexes here
.mapToObj(i -> Writesheet.Columns[i]).collect(Collectors.joining(","))

TA貢獻1853條經(jīng)驗 獲得超9個贊
new String[]{Writesheet.Columns[0], Writesheet.Columns[1], Writesheet.Columns[2]}
可以替換為對數(shù)組的引用
Writesheet.Columns
盡管
{Readsheet.Stringvalue, Readsheet.Stringvalue, Readsheet.Stringvalue}
可以替換為
Stream.generate(() -> Readsheet.Stringvalue).limit(3).toArray(String[]::new)
可以推廣到一個方法
public static <T> T[] generateArrayFromElement(T element, int size, IntFunction<T[]> arrayGeneratorFunction) {
return Stream.generate(() -> element)
.limit(size)
.toArray(arrayGeneratorFunction);
}
...
generateArrayFromElement(Readsheet.Stringvalue, 3, String[]::new);
(我們生成單個元素的無限流,限制為所需大小,并收集到數(shù)組中)
或者
public static <T> T[] generateArrayFromElement2(T element, T[] array) {
Arrays.fill(array, element);
return array;
}
...
generateArrayFromElement2(Readsheet.Stringvalue, new String[3]);
(我們用一個元素填充給定的數(shù)組并返回它)
添加回答
舉報