如何在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);
}