Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 方法仅在集合中使用_Java - Fatal编程技术网

Java 方法仅在集合中使用

Java 方法仅在集合中使用,java,Java,问题 给您一个列表L和另一个列表p,其中包含按升序排序的整数。printLots(L,P)操作将打印位于P指定位置的L中的元素。例如,如果P=1,3,4,6,则打印位于L中位置1,3,4和6的元素。编写程序printLots(L,P)。您提供的代码应该是java方法本身(不是伪代码),不需要包含类。 只能使用列表L和P继承的公共集合方法。不能使用仅在列表中的方法。收集方法返回的任何内容都是公平的,因此您可能会考虑如何使用迭代器 大家好,首先是问题的一部分。我对它的意思很困惑。我对收藏和清单不是很

问题

给您一个列表L和另一个列表p,其中包含按升序排序的整数。printLots(L,P)操作将打印位于P指定位置的L中的元素。例如,如果P=1,3,4,6,则打印位于L中位置1,3,4和6的元素。编写程序printLots(L,P)。您提供的代码应该是java方法本身(不是伪代码),不需要包含类。 只能使用列表L和P继承的公共集合方法。不能使用仅在列表中的方法。收集方法返回的任何内容都是公平的,因此您可能会考虑如何使用迭代器

大家好,首先是问题的一部分。我对它的意思很困惑。我对收藏和清单不是很熟悉。那么,这个要求是否意味着我不能使用get()之类的方法,而必须使用迭代器呢

这是我的密码:

public static void printLots(List<Integer> L, List<Integer> P){
    int size = L.size;
    for(int i=0; i<P.size; i++){
        int pos = P.get(i);
        if(P.get(i) <= size){
            int val = L.get(pos);
            System.out.println(val);
        }
        else{
            System.out.println("It has exceeded the number of elements in L");
        }
    }



}
公共静态无效打印批次(列表L、列表P){
int size=L.size;

对于(int i=0;iNo),不能使用
List.get(idx)

我想他们是想让你考虑一种更“有趣”的方法。
Collection
在技术上定义了一种你可以使用的
toArray
方法,但这可能违背了你所设定的问题的精神

Collection
还有一个
contains
方法,因此您可以迭代第一个列表,增加一个计数器,然后每次查看第二个列表是否包含该索引。如果是,则打印它。这是一种非常低效的方法,但可以解决问题


我建议将参数声明改为
集合
,这样编译器就可以防止您意外使用
列表中存在的方法
我怀疑您是对的,并且不允许使用
.get(int)

由于
p
中的位置是按升序给出的,因此可以很容易地使用迭代器并保留当前“迭代于”的元素计数器。计数器也是严格升序的


“欺骗”是使用
.toArray()
并在其中使用索引访问:)

澄清作业含义的最佳方式是询问您的讲师。我们只能猜测他/她是什么意思。您对这些说明的含义感到困惑……您应该询问您的教授,而不是我们。如果您尝试实施此操作但不起作用,那就是我们可以提供帮助的时候。将
列表
更改为
集合n
。然后编译器将强制您只使用
集合中的方法。非常感谢!但是如果我不能使用get方法,如何在给定索引的链接列表中获取元素?您仍然可以使用
contains
,因此使用迭代器循环列表中的所有可能值
L
nd每次查看另一个列表是否包含它。这不需要
get
,而是使用
迭代器