Имеется JSON файл с информацией о более чем 26 тыс. аэропортов с такими данными:
...},
{
"latitude": 1.8573000000000002,
"longitude": -76.08563055555555,
"proc_runways": 2,
"airportCode": "SKPI",
"airportName": "CONTADOR/HUILA",
"countryCode": "COL",
"FIRcode": "SKED",
"FIRname": "BOGOTA",
"region": "SAM",
"elevation": 1369,
"is_international": true,
"iatacode": "PTX",
"countryName": "Colombia"
},
{"latitude": 1.8573000000000002,
"longitude": -76.08563055555555,
"proc_runways": 2,
"airportCode": "SKPI",
"airportName": "CONTADOR/HUILA",
"countryCode": "COL",
"FIRcode": "SKED",
"FIRname": "BOGOTA",
"region": "SAM",
"elevation": 1369,
"is_international": true,
"iatacode": "PTX",
"countryName": "Colombia"
},{...
Но некоторые из записей повторяются. Я могу их найти по полю airportCode
, потому что оно уникально. Пробовал онлайн сервисы для поиска и удаления дубликатов, но размер файла около 8 MB, и это оказалось слишком много для них.
Можете посоветовать какой нибудь быстрый способ для удаления дубликатов из JSON массива в Java?
Не вижу великой проблемы, например что-то типа такого:
//бин описывающий поля объекта Airport
class Airport {
private double latitude;
private double longitude;
private int proc_runways;
private String airportCode;
//blah-blah
}
//декларируем тип для Gson
Type AIRPORT_TYPE = new TypeToken<List<Airport>>(){}.getType();
//аллоцируем Gson
Gson gson = new Gson();
//открываем файл с Json
JsonReader reader = new JsonReader(new FileReader(filename));
//парсим в список
List<Airport> airports = new Gson().fromJson(reader, AIRPORT_TYPE);
//аллоцируем мап
Map<String, Airport> mapAirports=new Map();
//засовываем список в мап с ключом airportCode
for(Airport airport:airports) {
mapAirports.put(airport.getAirportCode(), airPort);
}
//получаем из map обратно список без дублей
airportsWithNoDuplicates=new ArrayList<Airport>(mapAirports.values());
P.S. Как всегда дисклеймер: я не компилятор - писал на коленках, здесь очерчена только идея, code-polish на вашей стороне.
Виртуальный выделенный сервер (VDS) становится отличным выбором
При попытке отправки запроса на code в ответе нет заголовка "location"Находил рекомендацию отключить следование редиректу
Запускаю на компьютере через командную строку сервер с портом 6666Подскажите, как я могу к нему подключиться, нажав на кнопку в эмуляторе? У меня...
Мне нужно чтобы программа получала список всех IP адресов, обращающихся к моему серверу, и я мог получить этот списокРаботаю в линуксовом...