如您所见,可能我夸大了这个话题。这就是我所需要的;

我有5-6节课。我模拟,当这些班级在同一地点开会时,如果他们是同一性别的班级,他们将成为伴侣。一个婴儿将出生在同一班级。

但是我在这里感到困惑。我正在用ArrayList和for循环(i和j嵌套循环)匹配类。

那就是我所需要的;

if(male Xclass   matches   female Xclass){   //actually here i dont know classes
  Xclass x = new Xclass();                   // i have just elements i and j
  list.add(x);
} // something like that , but how can i know which class they have and how
  // can i create a new class while i don't know this.


**对不起,英语不好,谢谢:)

编辑:我的意思是同一个班级,但性别不同;有A,B,C,D类,并且性别只是可变的(private int Gender; //男性为1,女性为0,并且是随机值,1或0)我也有位置x,y。男性A和男性A不能交配男性A和女性A可以使男性B和女性C不能交配我的意思是。对不起,不好意思

最佳答案

那么,您的意思是这样吗(令人不安)?相同类型然后不同的类的意思很奇怪。从您的示例中,您只有一堂课。如果我理解正确,那么您想要建模类似的东西。

class Person {

  public enum Gender {

     Male,
     Female;
  }

  public enum SocialClass {
    Royal,
    Peasant,
    Barbarian;
  }

  public final Gender gender;
  public final SocialClass socialClass;

  public Person(Gender gender, SocialClass socialClass) {
     this.gender = gender;
     this.socialClass = socialClass;
  }

  public Person meet(Person person) {
    if (person != this && person.socialClass == this.socialClass && person.gender != this.gender) {
       return new Person(Math.random() > .5 ? Gender.Male : Gender.Female, this.socialClass);
    } else {
       return null;
    }
  }
}


然后,您可以执行以下操作:

List<Person> people = ...// however you got your list
Person person = randomRemoveFrom(people);
Person otherPerson = randomRemoveFrom(people);

Person child = person.meet(otherPerson);
if( child != null) {
   System.out.println("New Person instance?");
} else {
   System.out.println("No new person");
}

10-06 06:59