Я сравниваю два HashMaps и извлекаю ключи в первом HashMap
, которых нет во втором HashMap
. Это успешно. Мне нужно извлечь список значений отсутствующих ключей, и я получаю нулевое значение. Чего мне не хватает?
ChannelsSingleBundle channelSingle = new ChannelsSingleBundle();
//get ChannelSingle Map
HashMap<String, List<ChannelSingle>> singleChannelsMap = channelSingle.getChannelSinglesData();
//get Dcti map for Channels Single
DCTIBundle dctiChannel = new DCTIBundle();
HashMap<String, List<DCTI>> dctiChannelSingleMap = dctiChannel.getChannelSinglesData();
//Get keys for channels hash
HashSet<String> unionKeys = new HashSet(singleChannelsMap.keySet());
unionKeys.addAll(dctiChannelSingleMap.keySet());
unionKeys.removeAll(dctiChannelSingleMap.keySet());
System.out.println("Keys in SiingleMap Not in DCTI Map: \n" + unionKeys);//Gives me the coorect keys
List<ChannelSingle> singles = new ArrayList<>();
for (String key : unionKeys) {
singles = singleChannelsMap.get(key);//Attempt to get List<ChannelSingle> from the key Pair
}
for(ChannelSingle single: singles){
System.out.println(single.getHostRefNumber());
}
Редактировать: Как указано в комментариях, getHhostRefNumber был действительно нулевым. Теперь проблема в том, что в списке больше записей, чем должно быть. Мне нужно иметь записи, эквивалентные количеству ключей в unionKeys.