2016-05-26 1 views
0

Grundsätzlich muss ich Strings von einer Arraylist zu einer anderen in einer bestimmten Reihenfolge hinzufügen. Erste Elemente, die beide Favoriten enthalten, dann den ersten Favoriten, dann den zweiten.! Arraylist.contains() funktioniert nicht?

Ive versucht, dies zu tun, indem sie den ersten Satz hinzugefügt (keine Probleme), und dann Zugabe des zweiten Satzes mit einer bedingten: Originalliste [i] .contains (favorite1) & & secondList.contains (originalListNames [ i])

Aber ich bekam immer Wiederholungen. Ich habe dann den folgenden Code ausprobiert, und ich wiederhole immer noch. Sie werden in der richtigen Reihenfolge hinzugefügt, und all die Dinge, die hinzugefügt werden sollten, werden hinzugefügt. Aber sie sollten wirklich nicht wiederholt werden, doch tun sie ... irgendwelche Hilfe hier was genau ich vermassele?

ArrayList<String> dataSource = new ArrayList<>(); 
    for (int i=0; i < names.length; i++) { 
     if (categories[i].toLowerCase().contains(favorite1)) { 
      if (categories[i].toLowerCase().contains(favorite2)) { 
       dataSource.add(names[i] + "," + dates[i] + "," + descriptions[i] + "," + categories[i] + "," + imgurl[i]); 
      } 
     } 
    } 

    for (int i=0; i < names.length; i++) { 
     if (categories[i].toLowerCase().contains(favorite1)) { 
      if (dataSource.contains(names[i])) { 
      } 
      else{ 
       dataSource.add(names[i] + "," + dates[i] + "," + descriptions[i] + "," + categories[i] + "," + imgurl[i]); 
      } 
     } 
    } 

Beachten Sie, dass Datasource ist das Ziel, und Namen, Daten, Beschreibungen, etc. sind Arrays, die alle Fäden entsprechend dem gleichen Index enthalten. (das heißt, Namen [i], Daten [i], etc. enthalten alle das gleiche)

+0

Dagnabbit ..... bereits sehen das Problem ..... Ich muss für einen Teilstring in dataSource, nicht die gesamte Zeichenfolge suchen.Von meinem Verständnis Ich brauche iterate durch dataSource durch Anwendung von arrayList [i] .toString(). Enthält (Teilzeichenfolge)? Ein beiseite, ich weiß, ich kann den obigen Code kürzer machen, ich habe nur versucht, es in einfacheren Schritten zu erarbeiten weil ich gedacht hatte, dass aus irgendeinem Grund die! a.contains() nicht funktionierte – daolsson

+0

Vielleicht versuchen Sie es mit einer 'Map' dann –

+0

Versuchen Sie' .eqauls() 'anstelle von' contains() 'vielleicht. – Wenfeng

Antwort

0

Also endlich mal .... danke für die Hilfe.Ein bisschen rostig auf meinem Java, aber das Endergebnis (nicht optimiert obwohl es sein kann ....):

Verwandte Themen