Есть действительно много способов:
public static void main(String[] args) {
class Person {
private String name;
public Person(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
'}';
}
}
class Group {
Person[] groupOfPerson = new Person[10];
public Group() {
}
public Group(Person[] groupOfPerson) {
this.groupOfPerson = groupOfPerson;
}
public Person[] getGroupOfPerson() {
return groupOfPerson;
}
public void setGroupOfPerson(Person[] groupOfPerson) {
this.groupOfPerson = groupOfPerson;
}
@Override
public String toString() {
return "Group{" +
"groupOfPerson=" + Arrays.toString(groupOfPerson) +
'}';
}
}
Person[] people = new Person[]{new Person("foo"), new Person("bar"), new Person("baz")};
Group aGroup = new Group(people);
Group[] group = new Group[100];
group[0] = aGroup;
// group[100] = aGroup; -> Array index is out of bounds
System.out.println("group:\n" + Arrays.toString(group) + "\n");
Group[] group1 = new Group[1];
group1[0] = new Group();
group1[0].setGroupOfPerson(people);
System.out.println("group1:\n" + Arrays.toString(group1) + "\n");
Group[] group2 = new Group[]{aGroup};
System.out.println("group2:\n" + Arrays.toString(group2) + "\n");
List<Group> l = List.of(new Group(people));
Group[] group3 = l.toArray(Group[]::new);
System.out.println("group3:\n" + Arrays.toString(group3) + "\n");
Group[] group4 = new Group[]{aGroup};
group4[0].setGroupOfPerson(people);
System.out.println("group4:\n" + Arrays.toString(group4) + "\n");
Group[] group5 = new Group[]{aGroup};
group4[0].getGroupOfPerson()[0] = new Person("fooMod");
System.out.println("group5:\n" + Arrays.toString(group5) + "\n");
Group[] group6 = new Group[100];
group6[0] = new Group(new Person[]{new Person("foo")});
System.out.println("group6:\n" + Arrays.toString(group6) + "\n");
}
Вот выход:
group:
[Group{groupOfPerson=[Person{name='foo'}, Person{name='bar'}, Person{name='baz'}]}, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
group1:
[Group{groupOfPerson=[Person{name='foo'}, Person{name='bar'}, Person{name='baz'}]}]
group2:
[Group{groupOfPerson=[Person{name='foo'}, Person{name='bar'}, Person{name='baz'}]}]
group3:
[Group{groupOfPerson=[Person{name='foo'}, Person{name='bar'}, Person{name='baz'}]}]
group4:
[Group{groupOfPerson=[Person{name='foo'}, Person{name='bar'}, Person{name='baz'}]}]
group5:
[Group{groupOfPerson=[Person{name='fooMod'}, Person{name='bar'}, Person{name='baz'}]}]
group6:
[Group{groupOfPerson=[Person{name='foo'}]}, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
Process finished with exit code 0