Java:如何初始化列表的固定长度列表?

Java:如何初始化列表的固定长度列表?,java,sql,list,fixed-length-record,Java,Sql,List,Fixed Length Record,我有一个字符串[]列表,其中包含一些从数据库返回的数据 List<String[]> x; 列表x; 现在,对于每个“x”,我必须存储它的相对y。(假设“x”包含从“SELECT DISTINCT xColumn1,xColumn2 from table”返回的元素,现在对于每个元素,我必须存储来自另一个查询的数据) Y的元素将存储在这里: List<List<String[]>> yElements; 列表元素; 我读过,我可以声明一个固定长度的列表

我有一个字符串[]列表,其中包含一些从数据库返回的数据

List<String[]> x;
列表x;
现在,对于每个“x”,我必须存储它的相对y。(假设“x”包含从“SELECT DISTINCT xColumn1,xColumn2 from table”返回的元素,现在对于每个元素,我必须存储来自另一个查询的数据)

Y的元素将存储在这里:

List<List<String[]>> yElements;
列表元素;
我读过,我可以声明一个固定长度的列表,但我不知道如何声明。这就是我所做的:

yElements = Arrays.asList(new List<String[]>[x.sixe()]);
yElements=Arrays.asList(新列表[x.sixe()]);
Netbeans告诉我“通用数组创建”错误

我还想告诉您,我必须有一个固定长度的列表,才能在列表列表的特定索引中存储字符串[]的列表。(如果你能告诉我如何使用阵列,那也太好了!)
谢谢。

您不能使用
new
创建泛型类型数组的实例

另一种选择是:

import java.lang.reflect.*;
import java.util.*;

public class Test
{
    public static void main( String args[] )
    {
        List<String[]> x = ...;
        List<List<String[]>> yElements = Arrays.asList(
                (List<String[]>[])Array.newInstance(List.class, x.size()));
    }
}
import java.lang.reflect.*;
导入java.util.*;
公开课考试
{
公共静态void main(字符串参数[])
{
列表x=。。。;
List yElements=Arrays.asList(
(List[])Array.newInstance(List.class,x.size());
}
}
相关问题:。(这里的示例是关于创建泛型类型参数数组的实例……但这里也适用相同的方法。)


然而,我认为整个问题是基于一个错误的假设

我还想告诉您,我必须有一个固定长度的列表,才能在列表列表的特定索引中存储字符串[]的列表

你不必有一个固定大小的列表。从计算的角度来看,您的代码可以很好地处理非固定大小的列表。。。前提是不添加或删除列表元素。(事实上,使用
Arrays.asList
包装数组不会阻止其他代码尝试添加/删除元素…)。。。如果您只是将实现类型设置为
ArrayList
,那么通用数组创建问题就会消失


此外,我怀疑使用
x.size()
作为
yElements
的大小是不正确的。
yElements
的大小可能应该由
x
实例的数量决定,而不是给定的
x
实例的大小。

如果希望列表的大小绝对固定,可以使用本机数组。它们可以是多维的,例如,您可以有
String[]x
或'String[]y'

但是,老实说,从设计的角度来看,您的方法有点混乱,也没有那么清晰

为什么不像在评论中建议的那样,拥有一个同时包含两列(xColumn1,xColumn2)的对象,然后在一个单独的对象中拥有Y元素,然后可以将其与第一列相关联

因此:


然后你可以有一个数组或
列表

看起来你最好用一个bean把事情放在一起:
列表
类XandY{String xColumn1;String xColumn2;Something y;}
@谢谢你……这是个好主意!我“不得不”是因为我在线程中的实现,是的,x.size()是正确的长度,但我必须承认,我可能没有那么清楚地描述我的问题:)顺便说一句,谢谢你的时间。你评论的第一部分很有趣!这就是我所做的:
classa{String[]xColumn;private yellements[]yellements;}classe yellements{List yellements;}
现在就像一个符咒。非常感谢。
class XDetails
{
   String xColumn1;
   String xColumn2;

   YDetails relatedY;
   ...
}

class YDetails
{
   ... fields of Y ...

}