2016-05-21 4 views
1

Ich habe zwei Arrays löschen:Index des Zeichenfolge in Array erhalten und in einem anderen Array die Saiten an diesem Indizes

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

Als Ergebnis mag ich zwei Arrays: ein mit den Tagesgerichten und dem Gericht besonderen drin und die andere nur mit den Beilagen.

Deshalb habe ich versucht, den "Side Dish" Index der DishCategory zu bekommen, diese Strings meiner Gerichte Array zu löschen. Aber ich konnte sogar keine Funktion ausarbeiten, um alle "Beilagen" zu bekommen.

Kennt jemand eine gute Lösung?

Antwort

2

Der einfachste Weg, dies zu tun, 2 neuen Arrays zu erstellen.

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()]); 
0

Sie könnten durch das Array disfCategory iterieren und das Element des Arrays mit Ihrer "Beilage" vergleichen und den passenden Index in einem anderen Arraylist speichern und später mit diesem Index können Sie entfernen oder tun, was auch immer Sie tun möchten.

Beispielcode: -

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); 
     }