public static void main(String[] args) {
List<String> list =new ArrayList<>();
list.add("CDHE");
list.add("AB");
list.add("CD");
list.add("CDA");
list.add("IP:");
list.add("IP");
List<String> a = list.stream().sorted().collect(Collectors.toList());
Map<String,String> map = new HashMap<>();
for(String key:a){
if(map.get(key) == null){
int length = key.length();
map.put(key,key);
if(length>2){
for(int i=length-1;i>=2;i--){
String newKey = key.substring(0,i);
if(map.get(newKey) != null){
map.remove(newKey);
}
}
}
}
}
for (Map.Entry<String,String> entry : map.entrySet()) {
System.out.println(entry.getKey());
}
}