gpt4 book ai didi

java - 如何填充和访问 3 维数组列表的任何元素

转载 作者:行者123 更新时间:2023-11-29 03:46:58 28 4
gpt4 key购买 nike

我需要创建一个 3 维 ArrayList。

  ArrayList<ArrayList< ArrayList<Object>>> data_Header_Mapper; 

如何填充 3 维数组列表以及如何访问 3 维数组列表的叶子项(对象)。非常感谢您的帮助。

我熟悉使用 Vectors ,但是由于一些问题我想将下面的 Vectors 代码转换为 ArrayList。填充 3D vector 的代码如下。

  for (int r=0;r<totalRows;r++) // r - Rows
{

for (int c=0;c<totalViewedCols;c++) //c- Columns
{

cAct=0;
while (cAct < totalActualCols)
// for (int cAct=0;cAct<totalActualCols;cAct++) //c- Columns
{
if (Cols.get(cAct).toLowerCase().equals(columnName.toLowerCase()) )
{
ColValindex = colHeader_ForSave.indexOf(columnName) ;//Temp Comment
colValue= (String)data_ForSave.elementAt(r).get(ColValindex);
// ColValindex = header.indexOf(columnName) ;
// colValue= (String)data.elementAt(r).get(ColValindex);

data_Header_Mapper_Element.add(columnName);
data_Header_Mapper_Element.add(colValue);
}
cAct++;
}
if (data_Header_Mapper_Element.size() !=0)
{
data_Header_Mapper_Row.add(data_Header_Mapper_Element);
// data_Header_Mapper_Element.removeAllElements();
data_Header_Mapper_Element =null;
data_Header_Mapper_Element=new Vector<String>();
}
}
if (data_Header_Mapper_Row.size() !=0)
{
data_Header_Mapper.add(data_Header_Mapper_Row);

data_Header_Mapper_Row =null;
data_Header_Mapper_Row=new Vector<Vector<String>>();
}

}

访问 3D vector 的代码如下

  for(int r=0;r<rowSize;r++)
{

for (int c=0;c<colSize;c++)
{

// To Build Insert And Update Query
columnDataType= dbe.GetDataTypeOfTableColumn(rsMetaData,data_Header_Mapper.elementAt(r).get(c).get(0).toString());
dataSize=dbe.GetDataSizeOfTableColumn(rsMetaData,data_Header_Mapper.elementAt(r).get(c).get(0).toString());
Validation.ValidateData(columnDataType, data_Header_Mapper.elementAt(r).get(c).get(1), dataSize);

}

}

最佳答案

public class My3DArray {

private List<List<List<Object>>> list;

public My3DArray() {
this.list = generate3DArray(5, 5, 5);
}

public List<List<List<Object>>> generate3DArray(int dim1, int dim2, int dim3) {
List<List<List<Object>>> list = new ArrayList<List<List<Object>>>();
for(int i = 0; i < dim1; i++) {
List<List<Object>> list2 = new ArrayList<List<Object>>();
for(int j = 0; j < dim2; j++) {
List<Object> list3 = new ArrayList<Object>(dim3);
list2.add(list3);
}
list.add(list2);
}
return list;
}

public Object getElementIn3DArray(int i, int j, int k)
throws NullPointerException, ArrayIndexOutOfBoundsException {
return list.get(i).get(j).get(k);
}

public void setElementIn3DArray(Object o, int i, int j, int k)
throws NullPointerException, ArrayIndexOutOfBoundsException {
list.get(i).get(j).add(o);
}
}

public class Main {
public static void main(String[] args) {
My3DArray x = new My3DArray();
x.setElementIn3DArray("Hello World", 0, 0, 0);
System.out.println(x.getElementIn3DArray(0, 0, 0));
System.exit(0);
}
}

我在类中省略了一些变量,例如维度,但这是一个想法。如何使用此示例取决于您。

关于java - 如何填充和访问 3 维数组列表的任何元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10458752/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com