0

在下面提到的程序数组中,是一个作为参数传递给该函数的 List。任务是将数组切割成定义大小的 LookupTable 列表,然后将它们添加到 binlists 中。在这种情况下,binlists 的声明应该是什么?应该是 List 吗?因为无论哪种方式,它都会在 add() 函数中给我一个错误。如果我使用所有提到的列表作为原始类型,它工作得很好。但我的意图是使其参数化。

    protected List<LookupTable> binlists;
    binlists = new ArrayList<LookupTable>(nofbins);

    while(chunk+binsize <= tot_size)
    {
        List tempsort = (List<LookupTable>)arry.subList(chunk,chunk+binsize);
        System.out.println(tempsort.size());
        binlists.add(tempsort);
        chunk = chunk+binsize;
    }
4

1 回答 1

1

您需要使用addAll方法将列表添加到现有列表:-

binlists.addAll(tempsort);

而且您应该始终声明您List属于generic type.

因此,将您的tempSort列表声明generic list为类型LookUpTable:-

List<LookupTable> tempsort = 
                  (List<LookupTable>)arry.subList(chunk,chunk+binsize);

事实上,typecast如果您也将列表声明arry为泛型类型,您可以避免这种情况。

于 2012-10-23T17:06:01.750 回答