java - 解析应用程序名称并为每种类型生成字符串

标签 java data-structures hashmap

我有以下应用程序名称,它们按每种类型进行分类,如下所示:

#Below is for `app_kop_az1` type
app_kop_az1_hello
app_kop_az1_world
app_kop_az1_laguna
app_kop_az1_jolla

#Below is for `app_kop_az2` type
app_kop_az2_depot
app_kop_az2_friday
app_kop_az2_curad
app_kop_az2_daily

#Below is for `app_toy_az1` type
app_toy_az1_users
app_toy_az1_web
app_toy_az1_metrics
app_toy_az1_advert

#Below is for `app_toy_az2` type
app_toy_az2_exper
app_toy_az2_views
app_toy_az2_access
app_toy_az2_sas

#Below is for `app_wer_az1` type
app_wer_az1_dart
app_wer_az1_logical
app_wer_az1_trojan
app_wer_az1_table

#Below is for `app_wer_az2` type
app_wer_az2_cache
app_wer_az2_desco
app_wer_az2_peeko
app_wer_az2_loopo

所以我总共有6种类型,如下所示:

app_kop_az1
app_kop_az2
app_toy_az1
app_toy_az2
app_wer_az1
app_wer_az2

现在我需要以这种方式存储上述数据,以便最后我可以生成这样的字符串。对于每种类型,我需要创建五行,每一行都是其他类型的应用程序名称(不包括我们正在处理的类型)。

if_process_look app_kop_az1.* then add_pc pc_kop_az2 app_kop_az2_depot app_kop_az2_friday app_kop_az2_curad app_kop_az2_daily
if_process_look app_kop_az1.* then add_pc pc_toy_az1 app_toy_az1_users app_toy_az1_web app_toy_az1_metrics app_toy_az1_advert
if_process_look app_kop_az1.* then add_pc pc_toy_az2 app_toy_az2_exper app_toy_az2_views app_toy_az2_access app_toy_az2_sas
if_process_look app_kop_az1.* then add_pc pc_wer_az1 app_wer_az1_dart app_wer_az1_logical app_wer_az1_trojan app_wer_az1_table
if_process_look app_kop_az1.* then add_pc pc_wer_az2 app_wer_az2_cache app_wer_az2_desco app_wer_az2_peeko app_wer_az2_loopo

if_process_look app_kop_az2.* then add_pc pc_kop_az1 app_kop_az1_hello app_kop_az1_world app_kop_az1_laguna app_kop_az1_jolla  
if_process_look app_kop_az2.* then add_pc pc_toy_az1 app_toy_az1_users app_toy_az1_web app_toy_az1_metrics app_toy_az1_advert
if_process_look app_kop_az2.* then add_pc pc_toy_az2 app_toy_az2_exper app_toy_az2_views app_toy_az2_access app_toy_az2_sas
if_process_look app_kop_az2.* then add_pc pc_wer_az1 app_wer_az1_dart app_wer_az1_logical app_wer_az1_trojan app_wer_az1_table
if_process_look app_kop_az2.* then add_pc pc_wer_az2 app_wer_az2_cache app_wer_az2_desco app_wer_az2_peeko app_wer_az2_loopo

if_process_look app_toy_az1.* then add_pc pc_kop_az1 app_kop_az1_hello app_kop_az1_world app_kop_az1_laguna app_kop_az1_jolla
if_process_look app_toy_az1.* then add_pc pc_kop_az2 app_kop_az2_depot app_kop_az2_friday app_kop_az2_curad app_kop_az2_daily
if_process_look app_toy_az1.* then add_pc pc_toy_az2 app_toy_az2_exper app_toy_az2_views app_toy_az2_access app_toy_az2_sas
if_process_look app_toy_az1.* then add_pc pc_wer_az1 app_wer_az1_dart app_wer_az1_logical app_wer_az1_trojan app_wer_az1_table
if_process_look app_toy_az1.* then add_pc pc_wer_az2 app_wer_az2_cache app_wer_az2_desco app_wer_az2_peeko app_wer_az2_loopo

if_process_look app_toy_az2.* then add_pc pc_kop_az1 app_kop_az1_hello app_kop_az1_world app_kop_az1_laguna app_kop_az1_jolla
if_process_look app_toy_az2.* then add_pc pc_kop_az2 app_kop_az2_depot app_kop_az2_friday app_kop_az2_curad app_kop_az2_daily
if_process_look app_toy_az2.* then add_pc pc_toy_az1 app_toy_az1_users app_toy_az1_web app_toy_az1_metrics app_toy_az1_advert 
if_process_look app_toy_az2.* then add_pc pc_wer_az1 app_wer_az1_dart app_wer_az1_logical app_wer_az1_trojan app_wer_az1_table
if_process_look app_toy_az2.* then add_pc pc_wer_az2 app_wer_az2_cache app_wer_az2_desco app_wer_az2_peeko app_wer_az2_loopo

if_process_look app_wer_az1.* then add_pc pc_kop_az1 app_kop_az1_hello app_kop_az1_world app_kop_az1_laguna app_kop_az1_jolla
if_process_look app_wer_az1.* then add_pc pc_kop_az2 app_kop_az2_depot app_kop_az2_friday app_kop_az2_curad app_kop_az2_daily
if_process_look app_wer_az1.* then add_pc pc_toy_az1 app_toy_az1_users app_toy_az1_web app_toy_az1_metrics app_toy_az1_advert
if_process_look app_wer_az1.* then add_pc pc_toy_az2 app_toy_az2_exper app_toy_az2_views app_toy_az2_access app_toy_az2_sas
if_process_look app_wer_az1.* then add_pc pc_wer_az2 app_wer_az2_cache app_wer_az2_desco app_wer_az2_peeko app_wer_az2_loopo

if_process_look app_wer_az2.* then add_pc pc_kop_az1 app_kop_az1_hello app_kop_az1_world app_kop_az1_laguna app_kop_az1_jolla
if_process_look app_wer_az2.* then add_pc pc_kop_az2 app_kop_az2_depot app_kop_az2_friday app_kop_az2_curad app_kop_az2_daily
if_process_look app_wer_az2.* then add_pc pc_toy_az1 app_toy_az1_users app_toy_az1_web app_toy_az1_metrics app_toy_az1_advert
if_process_look app_wer_az2.* then add_pc pc_toy_az2 app_toy_az2_exper app_toy_az2_views app_toy_az2_access app_toy_az2_sas
if_process_look app_wer_az2.* then add_pc pc_wer_az1 app_wer_az1_dart app_wer_az1_logical app_wer_az1_trojan app_wer_az1_table

我想做一个Map<String, List<String>>其中键将是类型名称,值将是该类型的应用程序名称列表,但我很困惑如何使用此映射为每种类型逐行生成上述字符串?像这样使用 map 是正确的方法吗?

注意:我现在正在使用 Java 7。

最佳答案

您可以尝试使用以下代码结构来做到这一点:

Map<String, List<String>> myMap = ... // create data here

List<String> result = myMap.entrySet()
  .stream()
  .map(e -> {
    String s = "if_process_look " + e.getKey() + ".* ";
    // here you can do internal loop over e.getValue() and add what you want
    //   and concatenate it into one line text
    return s;
  })
  .collect(Collectors.toList());

但是还有很多其他方法可以做到这一点。

关于java - 解析应用程序名称并为每种类型生成字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57168980/

相关文章:

java - 查找两个字符串之间的匹配字符

c# - 如何对一堆 N x M 二进制矩阵进行排序,以便最相似的是双向链表中的邻居?

ruby - 将带括号的字符串转换为树,Ruby

groovy - 使用收集闭包方法在 groovy 中填充 HashMap

java - 可以对HashMap中的对象值求和吗?

java - 在 Java 中删除前导零

java - iOS MDM : apply Policies (Restrictions) and Wifi Configurations on Device

c# - 风格上的差异 : IDictionary vs Dictionary

java - 为什么将 ConcurrentNavigableMap 实现为跳跃列表?

java - 如何对 HashMap<String, Integer[]> 进行排序?