获取数组中字符串的索引并在另一个数组中删除这些索引处的字符串

get index of string in Array and delete in an other Array the strings at these indexes

我有两个数组:

String[] dishes = {"Dish1", "Dish2", "Dish3", "Dish4", "Dish5", "Dish6"};
String[] dishCategory = {"daily Dish", "daily Dish", "daily Dish", "side Dish", "side Dish", "Dish special"};

所以我想要两个数组:一个是日常菜和特色菜,另一个是小菜。

这就是为什么我试图获取 dishCategory 的 "side Dish" 索引来删除我的菜肴数组的这些字符串。但我什至无法计算出获取所有 "side dish" 索引的函数。

有谁知道好的解决办法吗?

您可以遍历 dishCategory 数组并将数组的元素与您的 "side dish" 进行比较,并将匹配的索引存储在其他 Arraylist 中,稍后在使用这些索引时,您可以删除或做任何您想做的事情.

示例代码:-

ArrayList<Integer> sideDishIdx = new ArrayList<>();
        int i=0;
        for(String s : dishCategory){
            if(s.equalsIgnoreCase("side Dish"))
                sideDishIdx.add(i);
            i++;

        }
        for(Integer idx : sideDishIdx){
            System.out.println("idx "+idx);
        }

最简单的方法是创建 2 个新数组。

List<String> dailyAndSpecialList = new ArrayList<>();
List<String> sideList = new ArrayList<>();
for (int i = 0; i < dishCategory.length; i++) {
  if (dishCategory[i].equals("side Dish")) {
    sideList.add(dishes[i]);
  } else {
    dailyAndSpecialList.add(dishes[i]);
  }
}
String[] sideArray = sideList.toArray(new String[sideList.size()]);
String[] dailyAndSpecialArray = dailyAndSpecialList.toArray(new String[dailyAndSpecialList.size()]);