java - 根据另一个列表字符串对列表字符串进行排序
问题描述
我有一个List<String>
这样的值:
static String input = "pro or 7";
List<String> arrayOfString = Arrays.asList(input.toLowerCase().split("\\s+"));
我有另一个字符串列表:
static List<String> organizations = Arrays.asList(
"Service Provider organisation 3 01254 25742", // count=3
"Service Provider test 2 132455 132455", // count=1
"Service Provider organisation 2 78900 6521", // count=3
"VOYAGES ANSELMINO 30876168300025 382510022", // count=1
"Service Provider test 1 32722 21211", // count=2
"SP recherche autocomplete 7897788 7897788") // count=1
.stream().map(String::toLowerCase)
.collect(Collectors.toList());
我想根据列表 arrayOfString 的元素对列表组织进行排序
例子:
- str = 服务提供商测试 1 32722 21211
count
将等于 2,因为str
包含 'pro' 和 '7'
- str = SP recherche 自动完成 7897788 7897788
count
将等于 1,因为str
包含“7”(消除重复字符)
然后根据结果对列表组织进行排序count
解决方案
我根据提示{@Lokesh give} 来实现它作为练习。你可以参考一下。
List<String> organizations = Arrays.asList(
"Service Provider organisation 3 01254 25742", // count=3
"Service Provider test 2 132455 132455", // count=1
"Service Provider organisation 2 78900 6521", // count=3
"VOYAGES ANSELMINO 30876168300025 382510022", // count=1
"Service Provider test 1 32722 21211", // count=2
"SP recherche autocomplete 7897788 7897788") // count=1
.stream().map(String::toLowerCase).sorted(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return getCountMeetCondition(o2) - getCountMeetCondition(o1);
}
}).collect(Collectors.toList());
private static int getCountMeetCondition(String s) {
int count = 0;
for (int i = 0; i < arrayOfString.size(); i++) {
if (s.contains(arrayOfString.get(i))) {
count++;
}
}
return count;
}
推荐阅读
- javascript - (ReactJs)如何向我的 firebase.auth() 用户添加电话号码?
- c# - 为什么从 C++ 切换到 C# 时从 BHO 内部调用 IHTMLElement2.getBoundingClientRect() 会慢几倍?
- php - 为 Moodle 3.9 运行 cron 作业时如何解决此错误?
- android - 无法加载滑翔抛出 NullPointerException
- reactjs - 如何阻止 React-spring 在重新渲染时运行动画
- mongodb - MongoDB Docker 容器启动,然后以非 Docker 错误代码自行退出
- javascript - 在 reactjs 中使用 firebase 数据库时出现 Firebase JS SDK 警告
- spring - 如何在 Spring Boot 中获取 Spring 缓存大小?
- c# - 如何在 Unity 中制作 2D 阴影?
- python - 如何正确地将文件位置存储到 postgresql 表中?