You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何按指定数组顺序排序含子串的字符串数组?

解决方案

核心思路是通过建立名字到排序优先级的映射,快速定位每个全名的排序位置,实现高效排序。具体步骤如下:

  1. 构建优先级字典:将已排序的名字数组转换为「名字-索引」的字典,索引值就是该名字的排序优先级(索引越小,排序越靠前)。
  2. 提取排序键:从每个全名字符串中拆分出名字部分,用字典查找对应的优先级。
  3. 按优先级排序:以优先级为排序键,对全名数组进行排序。

代码示例(Python)

# 输入数据
sorted_name_list = ["Mike2", "Mike3", "Mike1"]
full_name_list = ["Bush Mike1", "Clinton Mike2", "Trump Mike3"]

# 构建名字到排序索引的映射
name_priority = {name: idx for idx, name in enumerate(sorted_name_list)}

# 按优先级排序全名数组
sorted_full_names = sorted(full_name_list, key=lambda s: name_priority[s.split()[-1]])

# 输出结果
for item in sorted_full_names:
    print(item)

效率说明

  • 构建字典的时间复杂度为O(n)(n是已排序名字数组的长度)。
  • 排序操作的时间复杂度为O(m log m)(m是全名数组的长度)。
  • 整体属于高效的线性对数级复杂度,适合处理大规模数据。

内容的提问来源于stack exchange,提问作者user18240702

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:07:01