Я хочу вычислить уникальные символы в заданной строке и кэшировать их, используя коллекции, чтобы, если строка уже присутствовала, она не вычислялась снова.Для этого я использовал HashMap
, я сделал String в качестве ключа, и он считается значением.Я написал следующий код, но он не добавит эти пары ключ-значение на карту.Как решить эту проблему?
class UniqueCharacters {
public int uniqueCharacters(String s)
{
List<Character> list=new ArrayList<Character>();
for(int i=0; i<s.length();i++)
{
if(!(list.contains(s.charAt(i))))
{
list.add(s.charAt(i));
}
}
for(Character c:list)
{
System.out.println(c);
}
int count=list.size();
maintainCache(s, count);
System.out.println(count);
return count;
}
public void maintainCache(String s, int count)
{
Map<String,Integer> map=new HashMap<String,Integer>();
for(Map.Entry<String, Integer> entry: map.entrySet())
{
if(entry.getKey().equals(s))
{
System.out.println(entry.getKey()+" "+entry.getValue());
System.out.println("String was already there");
}
else
{
map.put(s, count);
System.out.println("String added to the cache");
}
}
}
}
public class UniqueCharactersTest {
public static void main(String[] args) {
UniqueCharacters u=new UniqueCharacters();
u.uniqueCharacters("hello");
}
}