Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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_Android_Arrays_Object - Fatal编程技术网

从Java中的数组创建对象数组

从Java中的数组创建对象数组,java,android,arrays,object,Java,Android,Arrays,Object,我是Android和Java新手,无法理解这个看似基本的循环设置,它可以从另外两个数组中的数据创建一个对象数组 它是这样工作的,但感觉不是很复杂 // RefineMenuItem is a public class public class RefineMenuItem { private int imageIcon; private String title; } // imageIcon and title are arrays with seven values in

我是Android和Java新手,无法理解这个看似基本的循环设置,它可以从另外两个数组中的数据创建一个对象数组

它是这样工作的,但感觉不是很复杂

//  RefineMenuItem is a public class
public class RefineMenuItem {
    private int imageIcon;
    private String title;
}

// imageIcon and title are arrays with seven values in them
int[] imageItems = { ... }        
String[] menuItems = { ... }

// Create the RefineMenu Objects
RefineMenuItem item1 = new RefineMenuItem(imageItems[0],menuItems[0]);
RefineMenuItem item2 = new RefineMenuItem(imageItems[1],menuItems[1]);
RefineMenuItem item3 = new RefineMenuItem(imageItems[2],menuItems[2]);
RefineMenuItem item4 = new RefineMenuItem(imageItems[3],menuItems[3]);
RefineMenuItem item5 = new RefineMenuItem(imageItems[4],menuItems[4]);
RefineMenuItem item6 = new RefineMenuItem(imageItems[5],menuItems[5]);
RefineMenuItem item7 = new RefineMenuItem(imageItems[6],menuItems[6]);

// Add the RefineMenu Objects to an ArrayList
ArrayList<RefineMenuItem> refineMenuList = new ArrayList<>();
refineMenuList.add(item1);
refineMenuList.add(item2);
refineMenuList.add(item3);
refineMenuList.add(item4);
refineMenuList.add(item5);
refineMenuList.add(item6);
refineMenuList.add(item7);

然后我认为我应该使用for循环来添加到数组中,但这就是我遇到的问题,在研究之后无法解决。帮助我指出正确的方向是感激的

我相信一个基本的for循环可以解决你所有的问题

只需确保您在之前完成了实现/声明

for(int i = 0; i<=6; i++) {
   RefineMenuItem item = new RefineMenuItem(imageItems[i],menuItems[i]);
   refineMenuList.add(item);
}

for(inti=0;i基本for循环可以解决您的所有问题,我相信

只需确保您在之前完成了实现/声明

for(int i = 0; i<=6; i++) {
   RefineMenuItem item = new RefineMenuItem(imageItems[i],menuItems[i]);
   refineMenuList.add(item);
}

for(int i=0;i直接从两个数组创建
ArraysList
是不可能的。首先,需要创建一个
RefineMenuItem
对象的数组并添加它们。然而,不要创建一个新数组来一次性添加所有对象,而是在实例化它们后立即创建它们……例如:

int size;
if(imageItems != null && menuItems != null && menuItems.length == imageItems.length) {
    size = menuItems.length;
} else {
    size = 0;
}

ArrayList<RefineMenuItem> refineMenuList = new ArrayList<>(size);

for (int i = 0; i < size; i++) {
    refineMenuList.add(new RefineMenuItem(imageItems[i],menuItems[i]));
}
int大小;
if(imageItems!=null&&menuItems!=null&&menuItems.length==imageItems.length){
大小=menuItems.length;
}否则{
尺寸=0;
}
ArrayList refineMenuList=新的ArrayList(大小);
对于(int i=0;i
不可能直接从两个数组创建一个
ArraysList
。首先,需要创建一个包含
RefineMenuItem
对象的数组并添加它们。但是,不要创建一个新数组来一次添加所有对象,而是在实例化它们后立即创建它们……例如:

int size;
if(imageItems != null && menuItems != null && menuItems.length == imageItems.length) {
    size = menuItems.length;
} else {
    size = 0;
}

ArrayList<RefineMenuItem> refineMenuList = new ArrayList<>(size);

for (int i = 0; i < size; i++) {
    refineMenuList.add(new RefineMenuItem(imageItems[i],menuItems[i]));
}
int大小;
if(imageItems!=null&&menuItems!=null&&menuItems.length==imageItems.length){
大小=menuItems.length;
}否则{
尺寸=0;
}
ArrayList refineMenuList=新的ArrayList(大小);
对于(int i=0;i
一个先决条件是
imageItems
menuItems
中的元素数量相同。因此,我首先要声明这一点

然后,您可以创建一个相同大小的新数组,并使用
for
循环进行迭代:

int[] imageItems = { ... }        
String[] menuItems = { ... }

if (imageItems.length != menuItems.length) {
    throw new IllegalStateException("array lengths don't match");
}

RefineMenuItem[] result = new RefineMenuItem[imageItems.length];

for (int i = 0; i < imageItems.length; ++i) {
    result[i] = new RefineMenuItem(imageItems[i], menuItems[i]);
}
int[]imageItems={…}
字符串[]menuItems={…}
if(imageItems.length!=menuItems.length){
抛出新的IllegalStateException(“数组长度不匹配”);
}
RefineMenuItem[]结果=新的RefineMenuItem[imageItems.length];
对于(int i=0;i

当这个代码完成时,
结果
数组将被完全填充。

一个先决条件是
imageItems
menuItems
中的元素数相同。因此我首先声明这一点

//  RefineMenuItem is a public class
public class RefineMenuItem {
    private int imageIcon;
    private String title;
}

// imageIcon and title are arrays with seven values in them
int[] imageItems = { ... }        
String[] menuItems = { ... }

// create array list
ArrayList<RefineMenuItem> refineMenuList = new ArrayList<>();

// add items to the array list in a for loop
for (int i = 0; i < imageItems.length; i++) {
  refineMenuList.add(new RefineMenuItem(imageItems[i], menuItems[i]));
}
然后,您可以创建一个相同大小的新数组,并使用
for
循环进行迭代:

int[] imageItems = { ... }        
String[] menuItems = { ... }

if (imageItems.length != menuItems.length) {
    throw new IllegalStateException("array lengths don't match");
}

RefineMenuItem[] result = new RefineMenuItem[imageItems.length];

for (int i = 0; i < imageItems.length; ++i) {
    result[i] = new RefineMenuItem(imageItems[i], menuItems[i]);
}
int[]imageItems={…}
字符串[]menuItems={…}
if(imageItems.length!=menuItems.length){
抛出新的IllegalStateException(“数组长度不匹配”);
}
RefineMenuItem[]结果=新的RefineMenuItem[imageItems.length];
对于(int i=0;i
此代码完成后,
结果
数组将被完全填充。

//RefineMenuItem是一个公共类
//  RefineMenuItem is a public class
public class RefineMenuItem {
    private int imageIcon;
    private String title;
}

// imageIcon and title are arrays with seven values in them
int[] imageItems = { ... }        
String[] menuItems = { ... }

// create array list
ArrayList<RefineMenuItem> refineMenuList = new ArrayList<>();

// add items to the array list in a for loop
for (int i = 0; i < imageItems.length; i++) {
  refineMenuList.add(new RefineMenuItem(imageItems[i], menuItems[i]));
}
公共类细化菜单项{ 私有int图像图标; 私有字符串标题; } //imageIcon和title是包含七个值的数组 int[]imageItems={…} 字符串[]menuItems={…} //创建数组列表 ArrayList refineMenuList=新的ArrayList(); //在for循环中将项添加到数组列表中 对于(int i=0;i
这是假设
imageItems
menuItems
的长度始终相同

前提是您可以创建
ArrayList
,然后使用for循环迭代
imageItems
menuItems
,从它们创建一个新的
RefineMenuItem
,并将其添加到
refineMenuList

//RefineMenuItem是一个公共类
公共类细化菜单项{
私有int图像图标;
私有字符串标题;
}
//imageIcon和title是包含七个值的数组
int[]imageItems={…}
字符串[]menuItems={…}
//创建数组列表
ArrayList refineMenuList=新的ArrayList();
//在for循环中将项添加到数组列表中
对于(int i=0;i
这是假设
imageItems
menuItems
的长度始终相同


这样做的前提是,您可以创建
ArrayList
,然后使用for循环迭代
imageItems
menuItems
,从它们创建一个新的
RefineMenuItem
,并将其添加到
refineMenuList

您应该通过以下方式将其添加到类数组中:

import java.util.ArrayList.add
RefineMenuItem[]项=新的RefineMenuItem();

对于(int i=0;i您应该通过以下方式将其添加到类数组:

import java.util.ArrayList.add
RefineMenuItem[]项=新的RefineMenuItem();
对于(int i=0;i