在java中的2d数组中添加1d数组
我正在写一个代码,我必须在2d数组中添加一个1d数组。 例如:我有一个userlist数组,它将在其中添加数据数组在java中的2d数组中添加1d数组,java,arrays,Java,Arrays,我正在写一个代码,我必须在2d数组中添加一个1d数组。 例如:我有一个userlist数组,它将在其中添加数据数组 Double[][] userList = new Double[4][appName.size()]; Double[] data = new Double[appName.size()]; 因此,用户列表将有如下内容: userlist={{1,2,3,4}, {2,3,4,7}, {0,0,1,2,}} 其中,{1,2,3,4}=>表示数据数组 问题:我遇到的问题是
Double[][] userList = new Double[4][appName.size()];
Double[] data = new Double[appName.size()];
因此,用户列表将有如下内容:
userlist={{1,2,3,4}, {2,3,4,7}, {0,0,1,2,}}
其中,{1,2,3,4}
=>表示数据数组
问题:我遇到的问题是,每次数据数组返回的内容都会用新数据覆盖userlist中的整个内容
例如:
if userlist={{1,2,3,4}, {2,3,4,7}} and data returns {0,0,4,5}
then my userlist becomes: {{0,0,4,5}, {0,0,4,5}, {0,0,4,5} }.
代码:
Double[][] userList = null;
userList = new Double[4][appName.size()];
String prevName = null;
Double[] data = new Double[appName.size()];
int count=0;
for(AuditInformationEntity e : auditInfoList)
{
//int count =0;
if(prevName== null || !prevName.equals(e.getDisplayName()) )
{
if(prevName!=null)
{
////====>> I think Something to be done here<========/////
userList[count++]=data;
}
//data = new ArrayList<Double>();
for(int i = 0 ; i<appName.size();i++)
data[i]=0d;
prevName = e.getDisplayName();
}
Double d = data[appName.indexOf(e.getAppName())];
if(d==null){
d=1d;
data[appName.indexOf(e.getAppName())]= d;
}
else
{
d++;
data[appName.indexOf(e.getAppName())]= d;
}
}
userList[count++]=data;
return userList;
Double[]userList=null;
userList=new Double[4][appName.size()];
字符串prevName=null;
Double[]data=新的Double[appName.size()];
整数计数=0;
对于(审核信息实体e:审核信息列表)
{
//整数计数=0;
if(prevName==null | |!prevName.equals(e.getDisplayName()))
{
if(prevName!=null)
{
////==>>我认为这里需要做些什么您已经正确地确定了问题所在。Java技术上没有多维数组,而是有数组数组。这意味着当您说userList[I]=data
时,您只是告诉Java更新userList[I]的引用
指向相同的数据
数组。(这称为别名错误,因为您认为您处理的是不同的数组,但您只是用不同的名称调用相同的数组。)
相反,在这种情况下,最好这样做:
int i;
double userList[][] = new double[numberOfArrays][];
double data[] = new double[4];
...
// inside a loop
// read into data
userList[i] = Arrays.copyOf(data);
当您创建userList
时,它实际上并不分配内部4元素数组;当您添加数据时,它会复制数组的每个版本。整个代码在一个方法中吗?是的,它在一个方法中。。