java - Java中是否有一个类保留重复项但不保留数据顺序?

标签 java collections anagram

我正在处理字谜,所以我只关心字符串中出现的字符,而不关心它们的顺序。 我搜索了一个合适的 Collection 类,但没有成功。

你能推荐任何可以帮助我的类(class)吗 保留重复项但忽略顺序

最佳答案

您可以使用 Map<Character,Integer>计算 String 的每个字符出现的次数.如果Map为两个 String 生成s是相等的,你就会知道对应的String s 是字谜。

例如(这里我使用了Map<Integer,Long>而不是Map<Character,Integer>因为它更方便):

String one = "animal";
String two = "manila";
Map<Integer,Long> mapOne = one.chars ().boxed().collect(Collectors.groupingBy(Function.identity(),Collectors.counting()));
Map<Integer,Long> mapTwo = two.chars ().boxed().collect(Collectors.groupingBy(Function.identity(),Collectors.counting()));
System.out.println ("Is anagram? " + mapOne.equals(mapTwo));

输出:

Is anagram? true

关于java - Java中是否有一个类保留重复项但不保留数据顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58201191/

相关文章:

java - @Transactional 在服务层还是门面?

c# - 如何通过属性使字典只读?

c# - 在 C# 中,如何按对象的多个字段对对象集合进行排序?

java - 我可以以某种方式排除或过滤掉 java 中 Collections.Min/Collections.Max 中的值吗?

objective-c - 查找字谜Objective-C的算法

Objective-C 乱码求解器

data-structures - 从字典中获取字谜列表

java - 以编程方式创建复合过滤器以在 log4j 2 中定义多个过滤器

java - 在运行测试方法之前必须调用一次 IMethodInterceptor 还是什么?

java - java的默认文本文件阅读器在哪里