这是一个简单的硬件问题,以下是我的代码:
您将获得一个列表L和另一个列表P,其中包含按升序排序的整数。操作printLots(L,P)将打印L中由P指定的位置中的元素。例如,如果P = 1,3,4,6,则位于L,位置1,3,4和6中的元素印刷。编写程序printLots(L,P)。您只能使用公共集合API容器操作
我的代码:
import java.util.Arrays;
import java.util.LinkedList;
public class Lists {
public static void main(String[] args){
LinkedList<Integer> L = new LinkedList<Integer>();
LinkedList<Integer> P = new LinkedList<Integer>();
L.addAll(Arrays.asList(4,9,13,50,65,87,91,99));
P.addAll(Arrays.asList(1,3,4,6));
int sample=L.indexOf(P);
System.out.println(L);
System.out.println(P);
System.out.println(sample);
}
}
输出:
[4, 9, 13, 50, 65, 87, 91, 99]
[1, 3, 4, 6]
-1
我对几件事感到困惑...如果我正在使用LinkedLists,为什么要将数组包含在代码中?
另外,如何显示相应P位置的L值? :)
答案 0 :(得分:2)
我没有得到这条线的用途
int sample=L.indexOf(P);
试试这个,而不是那条线
int sample=P.size();
for(int i=0;i<sample;i++){
System.out.println(L.get(P.get(i)));
}
输出
9 50 65 91
答案 1 :(得分:1)
ArrayList<Integer>L = new ArrayList<Integer>(Arrays.asList(4,9,13,50,65,87,91,99));
ArrayList<Integer>P = new ArrayList<Integer>(Arrays.asList(1,3,4,6));
for(Integer current: P){
System.out.print(L.get(current)+" ");
}
输出:9 50 65 91
答案 2 :(得分:0)
int[] L = {1, 3, 4, 6};
int[] P = {5, 7, 2, 1, 5, 2, 3, 5, 8};
for(int e : L) {
System.out.println(P[e]);
}
输出:7 1 5 3