값과 다른 목록을 포함하는 목록이 있습니다.이 경우 해당 스테이션 목록이있는 trainNumber입니다. 그러나 trainNumbers가 중복되어 스테이션이 다를 수 있습니다. 이것에서 나는 기차를 유지하는 새로운 목록을 만들려고 노력하고 있습니다. 가장 많은 방송국을 가진 방송국 수입니다. 나는 목록이있는 경우부분 중복 값 찾기 및 특정 유지
예를 들어이 포함 된 :
String trainNumber = 1, List trainNumber = [Station1, Station3]
String trainNumber = 2, List trainNumber = [Station1, Station2, Station3]
String trainNumber = 3, List trainNumber = [Station1, Station3]
String trainNumber = 3, List trainNumber = [Station3]
내가 새 목록에 포함 할 :
String trainNumber = 1, List trainNumber = [Station1, Station3]
String trainNumber = 2, List trainNumber = [Station1, Station2, Station3]
String trainNumber = 3, List trainNumber = [Station1, Station3]
내가 본 설정의 사용을 중복 목록 항목을 제거하는, 그러나 나는 유지하고 싶은 항목을 지정해야합니다.
HashSet<Trains> newList = new HashSet<Trains>();
for(Trains train: trainOverview){
String trainNumber = train.getTrainNumber();
int stationSize = train.getStations().size();
int largest = 0;
for(Trains trainCopy: trainOverview){
if(trainNumber.equals(trainCopy.getTrainNumber())){
int stationCopySize = trainCopy.getStations().size();
if(stationCopySize > largest) largest = stationCopySize;
}
}
if(togSize >= largest){
newList.add(tog);
}
}
trainOverview.clear();
trainOverview.addAll(newList);
이제이 문제가 발생하지만 매우 혼란 스럽습니다. HashSet을 사용하여 똑같은 양의 스테이션이있는 중복을 제거합니다. 분명히이 문제에 대해 더 나은 방법이 있어야 할 것입니다.
EDIT : 감사합니다.하지만 put 메서드가 키 값을 대체한다는 것을 알았습니다. 필자는 새로운 경우에 처음으로 키 (trainNumber)에 매핑 된 값 (스테이션)을 유지하려고합니다.
내가 전에지도와 함께 일한 적이 있지만, 내 접근 방법이다 (필자는 올바른을 사용하는 경우 확실하지) :Map<String, List<Station>> overview= new TreeMap<String, List<Station>>();
for(Trains train: trainOverview){
List<Stations> lista = overview.get(train.getTrainNumber());
//Merge lists if the key already exists, and replace the old value with the merged list
if(overview.containsKey(train.getTrainNumber())){
Set setboth = new HashSet(lista);
setboth.addAll(train.getStations());
lista.clear();
lista.addAll(setboth);
overview.put(train.getTrainNumber(), lista);
}
//If no key exists, create a new entry
else{
overview.put(train.getTrainNumber(), train.getStations());
}
}
trainNumbers에서 일련의 스테이션으로 맵핑을 작성하고 채우십시오. – ipavlic