Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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,我想根据现有变量的值创建一个列表名。比如说 double x; x = 1.23 List<Something> x = new ArrayList<>(); x.add(new Something(Blah, Blah)); doublex; x=1.23 列表x=新的ArrayList(); x、 添加(新的东西(废话,废话)); 这自然告诉我x已经被定义了。如何使列表的名称成为现有变量的值?您不能。您可以编写一个映射,也可以执行映射.put(x,myList)

我想根据现有变量的值创建一个列表名。比如说

double x;
x = 1.23

List<Something> x = new ArrayList<>();
x.add(new Something(Blah, Blah));
doublex;
x=1.23
列表x=新的ArrayList();
x、 添加(新的东西(废话,废话));

这自然告诉我x已经被定义了。如何使列表的名称成为现有变量的值?

您不能。您可以编写一个
映射
,也可以执行
映射.put(x,myList)
,但不能动态命名变量。

您不能。您可以编写一个
Map
,也可以执行
Map.put(x,myList)
,但是您不能动态命名变量。

根据您的评论,您需要“迭代数据库中的多行数据,并根据行的值将数据添加到多个列表中”,您可以像这样为循环构造

double x = 1.23

Map<Double, List<Something>> map = new HashMap<>();
for (;;) {
 List<Something> xValues = null;
if (map.containsKey(x)) {
   xValues = map.get(x);
} else {
  xValues = new ArrayList<>();
  map.put(x, xValues);
}
xValues.add(new Something(Blah, Blah)); 
}
double x=1.23
Map Map=newhashmap();
对于(;;){
列表xValues=null;
if(地图容器(x)){
xValues=map.get(x);
}否则{
xValues=新的ArrayList();
map.put(x,x值);
}
添加(新的东西(等等));
}

当然,
x=1.23
的值可以来自另一个集合,也可以直接来自
resultset

您需要“迭代数据库中的几行数据,并根据这些行的值将数据添加到多个列表”的注释,您可以像这样为
循环构造

double x = 1.23

Map<Double, List<Something>> map = new HashMap<>();
for (;;) {
 List<Something> xValues = null;
if (map.containsKey(x)) {
   xValues = map.get(x);
} else {
  xValues = new ArrayList<>();
  map.put(x, xValues);
}
xValues.add(new Something(Blah, Blah)); 
}
double x=1.23
Map Map=newhashmap();
对于(;;){
列表xValues=null;
if(地图容器(x)){
xValues=map.get(x);
}否则{
xValues=新的ArrayList();
map.put(x,x值);
}
添加(新的东西(等等));
}


当然,
x=1.23
的值可能来自另一个集合,也可能直接来自
resultset

为什么要/需要这样做?我必须迭代数据库中的12亿行数据,并根据行的值将数据添加到多个列表中。我需要根据数据行中的值创建列表,其中多行数据可能使用同一个列表,因此它们需要添加到现有列表中,否则将创建一个新列表。一旦我有了这些列表,我就对它们进行排序,并在列表上迭代执行一些统计功能。不能使用相同的名称。但是,每次需要创建新变量时,您都可以编写一个逻辑来追加/前置变量名。然后,您必须使用某种类型的映射,该映射对行数据中唯一的内容进行键控。为什么要/需要这样做?我必须迭代数据库中的12亿行数据,并根据行的值将数据添加到多个列表中。我需要根据数据行中的值创建列表,其中多行数据可能使用同一个列表,因此它们需要添加到现有列表中,否则将创建一个新列表。一旦我有了这些列表,我就对它们进行排序,并在列表上迭代执行一些统计功能。不能使用相同的名称。但是,每次需要创建一个新变量时,您可以编写一个逻辑来追加/前置变量名。然后,您必须使用某种类型的映射,对行数据中唯一的内容进行键控。这是否允许我在每个x、mylist上迭代?例如,如果列表1中的值是1,2 1,3 1,4 2,5和列表2 1,2 1,3 1,5 2,5,如果我想对列表进行排序并对每个列表执行统计,我将如何迭代这些值。@mithrix当然,您只需迭代
map.entrySet()
。很抱歉,我如何使用您在代码中提到的myList。例如,如果列表名为x,值为1,2,如何将其添加到map.put和map.put(x,myList)中@Louis Wassermant该列表没有名称
x
,您正在创建一个名为
myList
的列表,然后使用
map.put(x,myList)
放入地图。我想这可能是我的问题。列表的名称基于现有信息,因此我可以稍后回写到数据库,这就是为什么我尝试将现有变量的相同值分配给列表名称的原因。这是否允许我迭代每个x,mylist?例如,如果列表1中的值是1,2 1,3 1,4 2,5和列表2 1,2 1,3 1,5 2,5,如果我想对列表进行排序并对每个列表执行统计,我将如何迭代这些值。@mithrix当然,您只需迭代
map.entrySet()
。很抱歉,我如何使用您在代码中提到的myList。例如,如果列表名为x,值为1,2,如何将其添加到map.put和map.put(x,myList)中@Louis Wassermant该列表没有名称
x
,您正在创建一个名为
myList
的列表,然后使用
map.put(x,myList)
放入地图。我想这可能是我的问题。列表的名称基于现有信息,因此我可以稍后写回数据库,这就是为什么我尝试将现有变量的相同值分配给列表名称的原因。这允许我添加到现有列表中吗?例如,如果两行数据具有相同的x值。它是否会将这两个值都添加到x列表中?是的。x的值是映射的键,因此它将与包含前几行数据的现有列表相匹配。我根据您的建议更新了代码,但得到错误
所需类型参数的数目错误2
@saheed@mithrix既然你已经接受了答案,你就应该保留原来的问题。您面临的其他问题应在单独的问题中描述,因此请将您的编辑还原到上述问题。完成后,您知道为什么我获得的
所需类型参数数量错误2
@saheed这允许我添加到现有列表中吗?例如,如果两行数据具有相同的x值。它是否会将这两个值都添加到x列表中?是的。x的值是映射的键,因此它将匹配包含来自previ的数据的现有列表