Я хочу создать HashMap<String,Integer>
из существующего HashMap<String,Integer>
, применив некоторые операции к ключу карты.Предположим, у меня есть строка ->
String sampleString= "SOSSQRSOP";`
, затем я создал хэш-карту, взяв только 3 символа из строки, как показано ниже (поместив 0 в качестве значения):
Map<String, Integer> messages= new HashMap<>();
messages.put("SOS",0);
messages.put("SQR",0);
messages.put("SOP",0);
Фактическая задачанайти общее количество различных символов из заданной строки "SOS" с каждым ключом на карте и назначить значение no каждому ключу.Как показано ниже (Конечный результат):
Map<String, Integer> messages= new HashMap<>();
messages.put("SOS",0);
messages.put("SQR",2);
messages.put("SOP",1);
, поэтому я написал код в java8, используя приведенный ниже поток:
Map<String,Integer> result= messages
.entrySet().stream()
.collect(Collectors.toMap(e-> e.getKey(),
e-> e.getKey().stream()
.forEach(x-> {
if(!"SOS".equals(x)){
char[] characters= {'S','O','S'};
char[] message= x.toCharArray();
for(int i=0; i< characters.length;i++){
int index=0;
if(characters[i] != message[i]){
messages.put(e.getKey(),++index);
}
}
}
});
));
Я получаю ошибку компиляции.Может кто-нибудь помочь мне написать код с использованием потока.
Отредактировано: Также, пожалуйста, опишите другие подходы, чтобы сделать это.Кстати, в моем случае требовалось создать первое хеш-изображение из заданной строки.