В настоящее время у меня есть код ниже. Я ищу только первые 10 итераций для каждого цикла, который добавляет «DogDetail» в TableView вместо количества записей, которые могут быть извлечены из веб-страницы.Сделайте первые 10 итераций для каждого цикла - java
Например: если «Собака» имеет 50 записей истории, я бы хотел «получить» 10 из них, чтобы замедлить время, затрачиваемое на запуск программы.
public void loadHistory() throws IOException{
//races = new ArrayList<Race>();
Dog dog = (Dog)tblRunners.getSelectionModel().getSelectedItem();
String selectedDog = dog.getName();
lblRunner.setText(selectedDog);
//getHistory
String dogPage = "http://www.gbgb.org.uk/raceCard.aspx?dogName=" + selectedDog;
Document doc1 = Jsoup.connect(dogPage).get();
Element tblHeader = doc1.select("table.MasterTable_Web20 tbody").first();
List<DogDetail> data = new ArrayList<>();
for (Element element1 : tblHeader.children()){
DogDetail dogDetail = new DogDetail();
dogDetail.setDate(element1.select("td:eq(0)").text());
// System.out.println((element1.select("td:eq(0)").text()));
dogDetail.setDistance(element1.select("td:eq(2)").text());
dogDetail.setFin(element1.select("td:eq(4)").text());
dogDetail.setTrack(element1.select("td:eq(7)").text());
String raceURLlong1 = (element1.select("td:eq(14)").html());
String raceURLlong2 = raceURLlong1.replace("<a href=\"","");
String raceURL = "http://www.gbgb.org.uk/" + raceURLlong2.replace("\">View Race</a>","");
data.add(dogDetail);
Document document = Jsoup.connect(raceURL).get();
XElements element = Xsoup.compile("//*[@id=\"content\"]/table[2]/tbody/tr[2]/td/table/tbody/tr/td[2]/table[1]/tbody/tr/td[4]").evaluate(document);
// Get text content
String textContent = element.getElements().get(0).childNode(0).toString();
// Extract time portion
String time = textContent.trim().replaceAll("\\ \\;",
" ").split("\\s+")[1];
dogDetail.setTime(time);
}
// TableView<DogDetail> tblHistory = new TableView<DogDetail>(FXCollections.observableArrayList(data));
// tblHistory.setItems();
ObservableList<DogDetail> tmp2 = FXCollections.observableArrayList(data);
tblHistory.setItems(tmp2);
}
Каким образом ваша программа еще не в состоянии выполнить это? – APerson
используйте целочисленный счетчик и перерыв, когда он достигает 10. – Kakarot
Привет. Я не уверен, где поставить счетчик? На данный момент я, кажется, просто распечатываю ту же запись 10 раз, а не первые 10 записей ... –