嘿,我想用另一个数组中的元素填充一个数组。 例如(下) 并且数组b应该以数组b中的顺序填充元素。 有什么方法吗?我只知道Arrays.fill(但这是1个元素)。 表a是可变的,不是静态的!
int a[1,2,3,4];
int b[] = new int[100];
int b[] = {1,2,3,4,1,2,3,4,...}
答案 0 :(得分:2)
您可以使用Traceback (most recent call last):
File "/Users/edamame/workspace/git/chinese_nlp/chinese_segmenter1.py", line 6, in <module>
from getpwnam import pwd
ModuleNotFoundError: No module named 'getpwnam'
Process finished with exit code 1
方法。它将源数组从特定的开始位置复制到目标位置,从提到的位置复制。
例如复制数组25次以填充b。
System.arraycopy()
答案 1 :(得分:0)
我可以想象一个简单的for循环在第一个数组中循环并添加到第二个数组中,这是一个基本的解决方案,而无需调用您可能不熟悉的方法。
int a[1,2,3,4];
int b[] = new int[100];
int j = 0;
for (int i = 0; i < b.length; i++)
{
if(j == 4)
{
j = 0;
}
int n = a[j];
b[i] = n;
j++;
}
或者如果数组“ a”的大小发生变化,也可以检查数组长度
int a[1,2,3,4];
int b[] = new int[100];
int j = 0;
for (int i = 0; i < b.length; i++)
{
if(j == a.length)
{
j = 0;
}
int n = a[j];
b[i] = n;
j++;
}
答案 2 :(得分:0)
这是使用Streams的一种方法
int b[] = Stream.iterate(0, i -> i == a.length - 1 ? 0 : i + 1)
.limit(100)
.mapToInt(i -> a[i])
.toArray();
Stream.iterate(0, i -> i == a.length - 1 ? 0 : i + 1)
:
以0开头作为种子,并逐渐生成整数流。一旦索引到达数组的末尾,我们将重置/重新启动。
limit(100)
:由于流的源是无限的,因此限制为100个元素。
.mapToInt(i -> a[i])
:通过从数组 a 中获取 index 处的元素,将传入的Integer index 转换为int。 / p>
.toArray()
:将各个元素收集到int[]
中。
答案 3 :(得分:0)
您可以使用for循环和模运算符完成此操作:
for (int i = 0; i < b.length; i ++) {
b[i] = a[i % a.length];
}