@Drunya2018

JavaFx. Почему после добавления двух разных элементов в коллекцию добавляются 2 одинаковых?

@FXML
void drawUi() {
ObservableList usersData = FXCollections.observableArrayList();
okeyButton.setOnAction(event -> {
Main.service.submit(() -> {
ArrayList id = words(textField.getText());

for (int i = 0; i < id.size(); i++) {
try {
ResponseGlobalInfo responseInfo = ShowInfo.getInfo(id.get(i));
for (int j = 0; j < responseInfo.items.length; j++) {
Channel.setName(responseInfo.items[j].snippet.title);
String name = Channel.getName();
Channel.setDate(responseInfo.items[j].snippet.publishedAt);
String publishedDate = Channel.getDate();
String date = GlobalInfo.getDate(publishedDate);
Channel.setSubscribers(responseInfo.items[j].statistics.subscriberCount);
String subscribers = Channel.getSubscribers();
Channel.setCountVideo(responseInfo.items[j].statistics.videoCount);
String countVideo = Channel.getCountVideo();
Channel.setCountViews(responseInfo.items[j].statistics.viewCount);
String countViews = Channel.getCountViews();
usersData.add(i, new Channel(Channel.getName(), Channel.getDate(), Channel.getSubscribers(),
Channel.getCountVideo(), Channel.getCountViews()));
System.out.println(" id - " + id.get(j));
System.out.println("name - " + name);

}

treeView.setVisible(true);
nameColumn.setCellValueFactory(new PropertyValueFactory("name"));
dateColumn.setCellValueFactory(new PropertyValueFactory("date"));
subColumn.setCellValueFactory(new PropertyValueFactory("subscribers"));
videoColumn.setCellValueFactory(new PropertyValueFactory("countVideo"));
viewsColumn.setCellValueFactory(new PropertyValueFactory("countViews"));
treeView.setItems(usersData);

} catch (UnirestException e) {
e.printStackTrace();
}

}

});
});
}

вот код, могу скинуть на github.
После выполнения метода в колонах должны появится данные двух ютуб каналов. В итоге выводятся данные 1 канала 2 раза. В теле цикла все идет ок и данные разные, но после добавления, в userData оказывается 2 одинаковых канала. В чем может быть проблема?
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ответы на вопрос 1
@SeniorJD
замени i на j в строке
usersData.add(i, new Channel(Channel.getName(), Channel.getDate(), Channel.getSubscribers(),
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы