有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在java中初始化for循环中的对象?

假设SportsSchoolHome是Java中的类。 具有Home的方法,例如

void add(Sports t1, School t2);

以下是我想做的:

Sports s1 = new Sports("value1");
School t2 = new School("value1");
Home h = new Home();
h.add(s1,t2);

现在的问题是,我想重复这些步骤太多次了。保持h不变。因此h.add()被多次调用,使用不同的对象作为参数,值来自外部,使用forloop。 有人能告诉我如何初始化这些对象并调用 e,g中的add方法用于在中具有不同对象名称的for循环 每次迭代


共 (6) 个答案

  1. # 1 楼答案

    这里是您希望使用数组(或列表)的地方

    例如:

    Home h = new Home();
    Sports[] sports = new Sports[10];
    School[] schools = new School[10];
    for (int i =0; i< sports.length; i++) {
        h.add(sports[i], schools[i]);
    }
    

    在上面的示例中,您需要一种方法来初始化sportsschools数组的内容

    也许上述的细微变化正是您所需要的:

    Home h = new Home();
    String[] sports = // existing array of sport names
    String[] schools = // array of school names
    for (int i =0; i< sports.length; i++) {
        h.add(new Sports(sports[i]), new School(schools[i]));
    }
    

    在这里,我们使用学校和运动名称数组来创建添加到Home的所有对象

  2. # 2 楼答案

    创建一系列体育和学校活动

    Home h = new Home();
    int count = 10;
    Sports[] sports = new Sports[count];
    School[] school = new School[count];
    for (int i=0;i<count;i++)
    {
    sports[i] = new Sports();
    school[i] = new School();
    h.add(sports[i],school[i]);
    }
    
  3. # 3 楼答案

    初始化所需名称的数组,然后使用它为Home实例种子

    Home h = new Home(); 
    String[] names = new String[5]; 
    
    // populate names here
    // ...
    // now populate Home
    for (String name : names)
    {     
        h.add(new Sports(name), new School(name));
    } 
    
  4. # 4 楼答案

    如果您想创建许多Home对象,每个对象都有一个Sports和一个School对象,那么您需要使用一个array或一个collection class来存储这些对象。假设您使用数组来存储Home对象,那么它可能看起来像这样:

    // Array to store 10 Home objects
    Home[] homes = new Home[10];
    
    // Initialize each object in the array
    for (int i = 0; i < homes.length; ++i) {
        homes[i] = new Home();
    
        // Create a Sports and a School object
        Sports sports = new Sports();
        School school = new School();
    
        // Add those to the i'th Home object
        homes[i].add(sports, school);
    }
    

    编辑或者,是否只创建一个Home对象并向其中添加多个SportsSchools对象?那就更简单了:

    Home home = new Home();
    
    for (int i = 0; i < 10; ++i) {
        // Create a Sports and a School object
        Sports sports = new Sports();
        School school = new School();
    
        home.add(sports, school);
    }
    
  5. # 5 楼答案

    谢谢你的回答,你认为这也是正确的方法吗:

    Sports s1;
    School t2;
    Home h = new Home();
    
    for(int i=0; i<mysize; i++){
       s1 = new Sports("value");  //so i will change it as per the logic
       t2 = new School("value");
       h.add(s1, t2);
    }
    

    但我不确定这是否是正确的方法

  6. # 6 楼答案

    你的意思是这样的:

    Home h = new Home();
    while (CONDITION) {
       Sports t1 = new Sports();
       School s1 = new School();
       h.add(t1, s1);
    }