如何填充并访问3维数组列表中的任何元素 [英] How to populate and access any element of 3 Dimensional Array List
问题描述
我有一个要求创建一个3维的ArrayList。
的ArrayList< ArrayList的< ArrayList的<对象>>> data_Header_Mapper;
我怎么能填充三维ArrayList和我如何acccess 3维的ArrayList的叶子(对象)。由于大量的事先的任何帮助。
我所熟悉的向量工作,但由于一些问题,我想转换矢量的低于code到ArrayList的。
code对于填充三维矢量如下:
为(INT R = 0;为r totalRows; R ++)//的R - 行
{ 对于(INT C = 0;℃下totalViewedCols; C ++)// C-列
{ CACT = 0;
而(CACT< totalActualCols)
//为(INT CACT = 0;&CACT LT; totalActualCols; CACT ++)// C-列
{
如果(Cols.get(CACT).toLowerCase()。等于(columnName.toLowerCase()))
{
ColValindex = colHeader_ForSave.indexOf(COLUMNNAME); //温度评论
COLVALUE =(字符串)data_ForSave.elementAt(R)获得(ColValindex);
// ColValindex = header.indexOf(COLUMNNAME);
// COLVALUE =(字符串)data.elementAt(R)获得(ColValindex); data_Header_Mapper_Element.add(COLUMNNAME);
data_Header_Mapper_Element.add(COLVALUE);
}
CACT ++;
}
如果(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 =新的矢量<串GT;();
}
}
如果(data_Header_Mapper_Row.size()!= 0)
{
data_Header_Mapper.add(data_Header_Mapper_Row); data_Header_Mapper_Row = NULL;
data_Header_Mapper_Row =新的矢量<矢量<串GT;>();
} }
code对于访问三维矢量低于
为(INT R = 0;为r ROWSIZE; R ++)
{ 对于(INT C = 0;℃下colSize; C ++)
{ //要构建插入和更新查询
columnDataType = dbe.GetDataTypeOfTableColumn(rsMetaData,data_Header_Mapper.elementAt(r)的获得(C)获得(0)的ToString());
dataSize=dbe.GetDataSizeOfTableColumn(rsMetaData,data_Header_Mapper.elementAt(r).get(c).get(0).toString());
Validation.ValidateData(columnDataType,data_Header_Mapper.elementAt(r)的获得(三)获得(1),数据大小); } }
公共类My3DArray { 私人列表<名单,LT;名单<对象>>>清单; 公共My3DArray(){
this.list = generate3DArray(5,5,5);
} 公开名单<名单,LT;名单<对象>>> generate3DArray(INT DIM1,DIM2 INT,INT为dim3){
清单<名单,LT;名单<对象>>>名单=新的ArrayList<名单,LT;名单<对象>>>();
的for(int i = 0; I< DIM1,我++){
清单<名单,LT;对象>>列表2 =新的ArrayList<名单,LT;对象>>();
对于(INT J = 0; J< DIM2; J ++){
清单<对象>项目list3 =新的ArrayList<对象>(为dim3);
list2.add(项目list3);
}
list.add(列表2);
}
返回列表;
} 公共对象getElementIn3DArray(INT I,诠释J,INT K)
抛出NullPointerException异常,ArrayIndexOutOfBoundsException异常{
返回list.get(I)。获得(J)获得(K);
} 公共无效setElementIn3DArray(对象o,INT I,诠释J,INT K)
抛出NullPointerException异常,ArrayIndexOutOfBoundsException异常{
list.get(I)。获得(J)。新增(O);
}
}公共类主要{
公共静态无效的主要(字串[] args){
My3DArray X =新My3DArray();
x.setElementIn3DArray(Hello World的,0,0,0);
的System.out.println(x.getElementIn3DArray(0,0,0));
System.exit(0);
}
}
我忽略了一些变量,如尺寸类,但这是一个想法。它取决于你如何使用这个例子。
I have a requirement to create a 3-Dimensional ArrayList.
ArrayList<ArrayList< ArrayList<Object>>> data_Header_Mapper;
How can i populate the 3 D arraylist and how i acccess the leaf child ( Object) of 3 Dimensional ArrayList. Lots of thanks in advance for any help.
I am familiar working with Vectors , But due to some problems i want to convert the below code of Vectors to ArrayList. Code For Populating 3 D Vectors is as follows.
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>>();
}
}
Code For Access 3 D Vectors is below
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);
}
}
I omit some variables in the class like the dimensions but this is an idea. Its up to you how to use this example.
这篇关于如何填充并访问3维数组列表中的任何元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!