Java 如何使用循环创建新对象?
所以本质上这就是我想做的Java 如何使用循环创建新对象?,java,arrays,class,methods,Java,Arrays,Class,Methods,所以本质上这就是我想做的 do{ Object name = new Object();*Create new object* Object.method*run created object through a method* Scanner keyboard = new Scanner(System.in); System.out.println("Do you wish to continue entering data"); String ans
do{
Object name = new Object();*Create new object*
Object.method*run created object through a method*
Scanner keyboard = new Scanner(System.in);
System.out.println("Do you wish to continue entering data");
String answer = keyboard.nextLine();
} while (answer.equalsIgnoreCase("Yes"))
我是否需要创建阵列来实现此功能?如果是这样的话,它将如何工作?通常情况下,它将如下所示:
Collection<Object> objectCollection = new ArrayList<Object>();
for(int i = 0; i < objectMax; i++)
{
Object o = new Object();
o.doSomething();
objectCollection.add(o);
}
Collection objectCollection=new ArrayList();
对于(int i=0;i
如果您不想存储任何内容,只需执行以下操作:
for(int i = 0; i < objectMax; i++)
{
Object o = new Object();
o.doSomething();
}
for(int i=0;i
通常情况下,它会如下所示:
Collection<Object> objectCollection = new ArrayList<Object>();
for(int i = 0; i < objectMax; i++)
{
Object o = new Object();
o.doSomething();
objectCollection.add(o);
}
Collection objectCollection=new ArrayList();
对于(int i=0;i
如果您不想存储任何内容,只需执行以下操作:
for(int i = 0; i < objectMax; i++)
{
Object o = new Object();
o.doSomething();
}
for(int i=0;i
您可以使用ArrayList
List<Object> names = new ArrayList<Object>();
Scanner keyboard = new Scanner(System.in);
String answer;
do {
Object o = new Object();
o.method();
names.add( o );
System.out.println("Do you wish to continue entering data");
answer = keyboard.nextLine();
} while (answer.equalsIgnoreCase("Yes"));
List name=new ArrayList();
扫描仪键盘=新扫描仪(System.in);
字符串回答;
做{
对象o=新对象();
o、 方法();
名称。添加(o);
System.out.println(“您希望继续输入数据吗”);
答案=键盘.nextLine();
}while(回答:是);
您可以使用ArrayList
List<Object> names = new ArrayList<Object>();
Scanner keyboard = new Scanner(System.in);
String answer;
do {
Object o = new Object();
o.method();
names.add( o );
System.out.println("Do you wish to continue entering data");
answer = keyboard.nextLine();
} while (answer.equalsIgnoreCase("Yes"));
List name=new ArrayList();
扫描仪键盘=新扫描仪(System.in);
字符串回答;
做{
对象o=新对象();
o、 方法();
名称。添加(o);
System.out.println(“您希望继续输入数据吗”);
答案=键盘.nextLine();
}while(回答:是);
我会使用数组列表之类的东西。因此,您将有自己的do/while,在完成方法所做的任何事情后,将对象添加到列表中:
List<Object> list = new ArrayList<Object>();
Object name;
do {
name = new Object();
name.method();
list.add(name);
} while(answer.equalsIgnoreCase("Yes"));
List List=new ArrayList();
对象名称;
做{
name=新对象();
name.method();
列表。添加(名称);
}while(回答:是);
沿着这些线的东西。我会使用数组列表之类的东西。因此,您将有自己的do/while,在完成方法所做的任何事情后,将对象添加到列表中:
List<Object> list = new ArrayList<Object>();
Object name;
do {
name = new Object();
name.method();
list.add(name);
} while(answer.equalsIgnoreCase("Yes"));
List List=new ArrayList();
对象名称;
做{
name=新对象();
name.method();
列表。添加(名称);
}while(回答:是);
不,如果您只是想让它运行一个程序(我假设是一种方法),那么它就不必出于任何原因被保存
此方法还可以节省内存,因为在循环的每次迭代中,您都不会创建新的扫描仪或新内存。不,如果您只是想让它运行一个程序,则不必出于任何原因进行保存(我假设使用此方法)
此方法还可以节省内存,因为在循环的每次迭代中都不会创建新的扫描仪或新内存。视情况而定。如果对象具有状态(例如,表示数据库中的一行),则必须为每次迭代创建它。但是,如果您只需要在对象中调用一个方法(即,如果它是无状态的(没有非静态和非最终类变量,或者是不可变的)),那么您应该只创建一个实例,并在每次迭代中调用该方法。扫描仪对象就是一个例子。您所做的只是在其中调用一个方法,因此,您不必每次都创建一个新对象,而是在调用该方法之前创建它,或者作为一个实例(类级别,理想情况下为私有)字段,以便它可以在所有方法中重复使用。以下是我将如何重新编写您的代码:
public class MyClass {
private final Scanner scanner = new Scanner(System.in);
public void doSomething() {
Object object = new Object();
do {
// call your method here
// object.yourMethod();
System.out.println("Do you wish to continue entering data?");
} while (scanner.nextLine().equalsIgnoreCase("Yes"));
}
}
OTHO如果要存储与创建的每个实例关联的状态,则可以按如下方式执行:
public class MyClass {
private final Scanner scanner = new Scanner(System.in);
public void doSomething() {
List<Object> data = new ArrayList<Object>();
Object object;
do {
// call your method here
object = new Object();
// object.yourMethod();
data.add(object);
System.out.println("Do you wish to continue entering data?");
} while (scanner.nextLine().equalsIgnoreCase("Yes"));
for(Object d : data) {
// do something with the info you captured
}
}
公共类MyClass{
专用最终扫描仪=新扫描仪(System.in);
公共无效剂量测定法(){
列表数据=新的ArrayList();
对象对象;
做{
//在这里调用您的方法
对象=新对象();
//object.yourMethod();
数据。添加(对象);
System.out.println(“是否继续输入数据?”);
}while(scanner.nextLine().equalsIgnoreCase(“是”);
用于(对象d:数据){
//用你捕获的信息做点什么
}
}
}视情况而定。如果对象具有状态(例如,表示数据库中的一行),则必须为每次迭代创建它。但是,如果您只需要在对象中调用一个方法(即,如果它是无状态的(没有非静态和非最终类变量,或者是不可变的)),那么您应该只创建一个实例,并在每次迭代中调用该方法。扫描仪对象就是一个例子。您所做的只是在其中调用一个方法,因此,您不必每次都创建一个新对象,而是在调用该方法之前创建它,或者作为一个实例(类级别,理想情况下为私有)字段,以便它可以在所有方法中重复使用。以下是我将如何重新编写您的代码:
public class MyClass {
private final Scanner scanner = new Scanner(System.in);
public void doSomething() {
Object object = new Object();
do {
// call your method here
// object.yourMethod();
System.out.println("Do you wish to continue entering data?");
} while (scanner.nextLine().equalsIgnoreCase("Yes"));
}
}
OTHO如果要存储与创建的每个实例关联的状态,则可以按如下方式执行:
public class MyClass {
private final Scanner scanner = new Scanner(System.in);
public void doSomething() {
List<Object> data = new ArrayList<Object>();
Object object;
do {
// call your method here
object = new Object();
// object.yourMethod();
data.add(object);
System.out.println("Do you wish to continue entering data?");
} while (scanner.nextLine().equalsIgnoreCase("Yes"));
for(Object d : data) {
// do something with the info you captured
}
}
公共类MyClass{
专用最终扫描仪=新扫描仪(System.in);
公共无效剂量测定法(){
列表数据=新的ArrayList();
对象对象;
做{
//在这里调用您的方法
对象=新对象();
//object.yourMethod();
数据。添加(对象);
System.out.println(“是否继续输入数据?”);
}while(scanner.nextLine().equalsIgnoreCase(“是”);
用于(对象d:数据){
//用你捕获的信息做点什么
}
}
}这要看情况而定;您想保留创建的每个对象,还是仅保留最后一个这样的对象?这取决于;您希望保留创建的每个对象,还是仅保留最后一个这样的对象?