4 回答
TA贡献1852条经验 获得超1个赞
int count = 0;
ArrayList<Integer> elements = new ArrayList<Integer>() {
{
add(4);
add(3);
add(1);
}
};
ArrayList<Integer> numbers = new ArrayList<Integer>() {
{
add(31);
add(21);
add(50);
add(70);
add(90);
add(80);
add(50);
add(100);
}
};
for (Integer e : elements) {
for (int i = count; i < count+e; i++) {
System.out.print(numbers.get(i) + " ");
}
count += e;
System.out.println();
}
TA贡献1869条经验 获得超4个赞
根据列表 1 中存在的元素循环遍历 first1 和遍历 2 列表。
ArrayList<Integer> ele = new ArrayList<Integer>();
ele.add(4);
ele.add(3);
ele.add(1);
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(31);
numbers.add(21);
numbers.add(50);
numbers.add(70);
numbers.add(90);
numbers.add(80);
numbers.add(50);
numbers.add(100);
int k = 0,i=0,j=0;
for(i = 0; i < ele.size(); i++){
for(j = k ; j < k + ele.get(i); j++){
System.out.print(numbers.get(j)+ " ");
}
k = j;
System.out.print("\n");
}
TA贡献1725条经验 获得超7个赞
只是为了好玩,让我们为这个小问题提出一个解决方案:
List<Integer> elements = Arrays.asList(4,3,1);
List<Integer> numbers = Arrays.asList(31,21,50,70,90,80,50,100);
首先,让我们确保通过简单的检查我们不会遇到索引越界问题:
if (elements.stream().mapToInt(e -> e).sum() != numbers.size()){
System.err.println("Invalid input");
return;
}
现在,我们只需要一个数字列表的迭代器:
Iterator<Integer> it = numbers.iterator();
我们像往常一样迭代元素:
for(int n : elements){
for(int i = 0; i < n; ++i)
System.out.print(it.next() + " ");
System.out.println();
}
使用此解决方案无法访问迭代器之外。
TA贡献1876条经验 获得超7个赞
希望这将达到您的目的
List<Integer> element = new ArrayList<>( Arrays.asList(4, 3, 1));
List<Integer> number = new ArrayList<>( Arrays.asList( 31, 21, 50, 70, 90, 80, 50, 100));
int cnt = 0;
for (Integer integer : element) {
while (integer > 0) {
System.out.print(number.get(cnt++));
integer--;
}
System.out.println();
}
如果这个答案有用,请点赞。
添加回答
举报