Я бы использовал карту для хранения данных:
Map<Integer, Set<Integer>> map = new TreeSet<Integer, Set<Integer>>();
Клавиша - это значение первой строки, и, поскольку оно не уникально, значение карты равнонабор, который содержит различные значения из второго столбца.
private void addLine(String line) {
String[] fields = line.split("\\s*");
Integer key = Integer.parseInt(fields[0]);
Integer value = Integer.parseInt(fields[1]);
Set<Integer> set = map.get(value);
if (set == null) {
set = new HashSet<Integer>();
map.put(key, set);
}
set.add(value);
}
Как только файл будет прочитан, вы можете получить результат для каждого числа следующим образом:
private String getResult(Integer key) {
Set<Integer> values = map.get(key);
if (values == null) {
return null; // key not in map (unknown number)
} else if (values.size() == 1) {
return values.iterator().next().toString();
} else {
return "MIXED";
}
}