如何在Java中循环对象值

如何在Java中循环对象值,java,arrays,object,for-loop,Java,Arrays,Object,For Loop,我想简单地循环遍历对象的所有值,就像我使用数组的值一样。我在网上搜索过,但他们似乎总是把事情弄得比我能理解的复杂得多。我的代码非常简单地显示了我想要做的事情 这是我的密码: class myCON{ int modelYear; String modelName; public myCON(int year, String name){ modelYear = year; modelName = name; }

我想简单地循环遍历对象的所有值,就像我使用数组的值一样。我在网上搜索过,但他们似乎总是把事情弄得比我能理解的复杂得多。我的代码非常简单地显示了我想要做的事情

这是我的密码:

class myCON{

    int modelYear;
    String modelName;


    public myCON(int year, String name){

        modelYear = year;
        modelName = name;

    }


    public static void main(String[] args){

        /*

        ***********************************************************
        int[] arr= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

        for ( int i=0; i<arr.length; i++){
            System.out.println(arr[i]);
        }

        System.out.println("end");

        *************************************************************

        */


        myCON myObj1 = new myCON(2005, "Nissan5");
        myCON myObj2 = new myCON(2006, "Nissan6");
        myCON myObj3 = new myCON(2007, "Nissan7");
        myCON myObj4 = new myCON(2008, "Nissan8");
        myCON myObj5 = new myCON(2009, "Nissan9");

        for(int i=1; i<6;i++){
            System.out.println(myObj[i].modelYear + " " + myObj[i].modelName);
        }

        System.out.println(myObj1.modelYear + " " + myObj1.modelName);
        System.out.println(myObj2.modelYear + " " + myObj2.modelName);
        System.out.println(myObj3.modelYear + " " + myObj3.modelName);
        System.out.println(myObj4.modelYear + " " + myObj4.modelName);
        System.out.println(myObj5.modelYear + " " + myObj5.modelName);




    }
}
class myCON{
国际车型年;
字符串模型名;
公共myCON(整年,字符串名称){
modelYear=年份;
modelName=名称;
}
公共静态void main(字符串[]args){
/*
***********************************************************
int[]arr={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

对于(inti=0;i将它们存储在一个数组中,然后可以对它们进行迭代。 像这样:

myCON myObj[] = {new myCON(2005, "Nissan5"), new myCON(2006, "Nissan6")}
for(int i=0; i<myObj.length;i++){
   System.out.println(myObj[i].modelYear + " " + myObj[i].modelName);
}
myCON myObj[]={new myCON(2005,“日产5”)、new myCON(2006,“日产6”)}

对于(inti=0;i,您必须将对象添加到列表中,并为进程执行循环

List<myCon> myObj = new ArrayList<>();
for(int i=0; i<5; i++) {
   myObj.add(new myCon("2005", "Nisan5");
}
List myObj=new ArrayList();

对于(int i=0;i,您可以执行以下操作:

List<myCON> myObjects = new ArrayList<>();
myCON myObj1 = new myCON(2005, "Nissan5");
myObjects.add(myObj1);
myCON myObj2 = new myCON(2006, "Nissan6");
myObjects.add(myObj2);
myCON myObj3 = new myCON(2007, "Nissan7");
myObjects.add(myObj3);

for (int i = 0; i < myObjects.size(); i++) {
    System.out.println(myObjects.get(i).modelYear + " " + 
myObjects.get(i).modelName);
}
List myObjects=new ArrayList();
myCON myObj1=新myCON(2005年,“日产5”);
添加(myObj1);
myCON myObj2=新myCON(2006年,“日产6”);
myObjects.add(myObj2);
myCON myObj3=新myCON(2007年,“日产7”);
myObjects.add(myObj3);
对于(int i=0;i
试试这个。基本上,您需要做的是创建一个可供所有实例使用的静态变量列表,并提供一个静态方法来获取该列表。这样,您也可以从类外部使用它。此外,类名应该以大写字母开头

int modelYear;
String modelName;

/*
 * Create a static list object to store all the objects
 */
static List<myCON> objectList = new ArrayList<myCON>(); 

public myCON(int year, String name){

    modelYear = year;
    modelName = name;

    /*
     *  Add the newly created object to static list 
     */
    objectList.add(this);
}


public static void main(String[] args){
    myCON myObj1 = new myCON(2005, "Nissan5");
    myCON myObj2 = new myCON(2006, "Nissan6");
    myCON myObj3 = new myCON(2007, "Nissan7");
    myCON myObj4 = new myCON(2008, "Nissan8");
    myCON myObj5 = new myCON(2009, "Nissan9");

    for(myCON instance : getObjects()){
        System.out.println(instance.modelYear + " " + instance.modelName);
    }
}

/*
 * Create a static getter method which can be called from anywhere
 * to get the list of objects.
 */
public static List<myCON> getObjects() {
    return objectList;
}
int modelYear;
字符串模型名;
/*
*创建静态列表对象以存储所有对象
*/
静态列表objectList=newarraylist();
公共myCON(整年,字符串名称){
modelYear=年份;
modelName=名称;
/*
*将新创建的对象添加到静态列表
*/
objectList.add(这个);
}
公共静态void main(字符串[]args){
myCON myObj1=新myCON(2005年,“日产5”);
myCON myObj2=新myCON(2006年,“日产6”);
myCON myObj3=新myCON(2007年,“日产7”);
myCON myObj4=新myCON(2008年,“日产8”);
myCON myObj5=新myCON(2009,“日产9”);
对于(myCON实例:getObjects()){
System.out.println(instance.modelYear+“”+instance.modelName);
}
}
/*
*创建一个可以从任何地方调用的静态getter方法
*获取对象列表。
*/
公共静态列表getObjects(){
返回对象列表;
}

哈哈,你不能用
myObj[i]
来获取
myObj1,myObj2,…,myObj5
。如果你遵循Java的语法,
myObj[]
是一个数组,
myObj[i]
是该数组的第i个元素

因此,您可以将这些对象放入数组并对其进行迭代:)

myCon[]myObjs=新的myCon[]{myObj1,myObj2,myObj3,myObj4,myObj5};
对于(int i=0;i
另请注意:我从for循环中的
I=0
开始,而不是1,因为数组是基于零的,所以
myObj1
将位于
myObj[0]
,即
I=0


希望这有帮助

您的代码中实际上没有数组

您正在创建新的类
myCON

如果您想使用
myCON
类的所有实例创建
Array
ArrayList
,则需要执行以下操作

class myCON {

    int modelYear;
    String modelName;

    public myCON(int year, String name) {

        modelYear = year;
        modelName = name;
    }        

    public static void main(String[] args) {

        List<myCON> myCONList = new ArrayList<>;

        myCONList.add(new myCON(2005, "Nissan5"));
        // Keep populating your List or Array until you are satisfied.
        myCONList.add(new myCON(2009, "Nissan9"));

        for (myCON m : myCONList) {
            System.out.println(m.modelYear + " " + m.modelName);
        }
    }
}
您不需要创建任何数组,只需创建
myCON
类的一个新实例,并将其“提供”给名为
myObj1
的对象

事情是,
myObj1
只是一个名字,让你可以访问它的内容。结尾的“1”并不意味着什么,你可以把它命名为
myObjFirst
,它不会有任何区别

因此,当您尝试:

for(int i=1; i<6;i++){
    System.out.println(myObj[i].modelYear + " " + myObj[i].modelName);
}

for(int i=1;i您在迭代什么?我没有看到
ArrayList
或您的
myCon
对象的类似数据结构。提示:您的代码意味着您已经了解数组。因此,从学习如何使用数组作为对象类型开始。提示:遵循java命名约定。类名应为A)要有意义,说出它们是关于什么的;B)遵循大写的想法。你听说过for-each循环吗?是的!但问题是具体要求a for i。不,不是。问题是如何迭代对象。我的解释是这样的:他们要求“循环遍历对象的所有值,就像我使用数组的值一样”,他们给出了一个for i示例在他们代码中的注释中,最简单的答案是显示它如何与我一起工作。另外,显示它如何与每个人一起工作意味着同时解释两件事,这在我看来是不必要的复杂(他们是一个新的贡献者,和我一样)。我假设要求也从类外部获取所有对象,而不仅仅是从主方法。在构造函数中添加到列表本身将自动跟踪随时随地创建的所有对象。我假设仅在主方法中添加数组将不是一种正确的方法,因为此功能应具有此功能在我看来,如果我在其他方法中需要同样的东西,我会怎么做?
class myCON {

    int modelYear;
    String modelName;

    public myCON(int year, String name) {

        modelYear = year;
        modelName = name;
    }        

    public static void main(String[] args) {

        List<myCON> myCONList = new ArrayList<>;

        myCONList.add(new myCON(2005, "Nissan5"));
        // Keep populating your List or Array until you are satisfied.
        myCONList.add(new myCON(2009, "Nissan9"));

        for (myCON m : myCONList) {
            System.out.println(m.modelYear + " " + m.modelName);
        }
    }
}
myCON myObj1 = new myCON(2005, "Nissan5");
for(int i=1; i<6;i++){
    System.out.println(myObj[i].modelYear + " " + myObj[i].modelName);
}