Есть класс Game, объекты класса инициализируются в конструкторе и сразу добавляются в общий ArrayList.
Так же в классе есть синхронизированный по листу геттер.
public class Game {
private String teamOne;
private String teamTwo;
private String link;
private String id;
public Game(String teamOne, String teamTwo, String link, String id) {
this.teamOne = teamOne.toLowerCase();
this.teamTwo = teamTwo.toLowerCase();
this.link = link;
this.id= id;
}
public boolean equals(Game obj) {
if (this.id.equals(obj.id)) return false;
if (this.teamOne.equals(obj.teamOne) || this.teamOne.equals(obj.teamTwo)) return true;
return this.teamTwo.equals(obj.teamOne) || this.teamTwo.equals(obj.teamTwo);
}
}
Механика такая. В этот класс поступают новые объекты из разных источников. Источники запущены в цикле, каждый в своём потоке, и подгружают новые объекты, пока программа запущена.
Метод должен брать новый объект, сравнивать объекты по equals() и группировать их. Далее определить элемент в какую-то группу эквивалентных элементов. Если такой группы нет, то создавать её.
1. Как инициализировать метод при создании каждого нового объекта?
2. Как синхронизировать создание объектов, чтобы в метод точно прошли все объекты по очереди?
3. Что лучше использовать для единого хранения групп объектов и для хранения объекта в группе?
4. Как написать этот метод и какова механика его работы?
5. Может быть надо написать группу методов? Если да, то какие.