2016-06-08 13 views
2

Ich möchte indexOf() verwenden, aber es funktioniert nicht richtig.indexOf() - Liste - Android - Funktioniert nicht wie es sollte

List<String> datume = new ArrayList<>(); 
     for(int i = 0; i < datumes.length(); i++){ 
      datume.add(datumes.getJSONObject(i).getString("Datum")); 
     } 
     java.util.Collections.sort(datume); 

Es sieht wie folgt aus:

[1468281600, 1468195200, 1468022400, 1467936000, 1467849600, 1467763200, 1467676800, 1467590400, 1468368000, 1468454400, 1468540800] 

Aber jedes Mal, es gibt nur 0, wenn ich für diese Suche:

1467590400 

mit ...

pos = datume.indexOf(preferences.getString("auswahldatum", "n")); 

(Einstellungen funktionieren ordnungsgemäß)

+0

Versuchen Sie, die Daten zu trimmen, bevor Sie sie zur Liste hinzufügen und wenn Sie den Index von verwenden. '(preferences.getString (" wahldauer "," n "). trim())" Könnten einige zusätzliche Leerzeichen sein, die dazu führen, dass der Index nicht gefunden wird. – Vucko

+0

Vielen Dank für Ihre Antwort, aber es hilft nicht :( –

+1

@Vucko, das könnte sein, aber würde er nicht eine -1 in diesem Fall bekommen? 0 zeigt an, dass die Übereinstimmung auf dem ersten Element gefunden wurde, und die Beispiele vorausgesetzt sind richtig, das ist völlig falsch .... –

Antwort

3

Dies funktioniert tatsächlich so, wie es sollte. Sie sortieren die ArrayList, und Wert 1467590400, der kleinste von allen, nimmt die erste Position (mit dem Index 0) in der neuen sortierten Liste.

+0

Kurz gesagt, die lis t hast du in deiner Frage nicht richtig sortiert. – zgc7009

+0

Grundsätzlich. Aber ich denke, er zeigt die Liste vor dem Sortieren. – Vucko

Verwandte Themen