2016-04-23 10 views
0

Ich bin gerade dabei, meine erste Android App zu programmieren und ich muss ein Äquivalent von Excel Vlookup durchführen. Ich habe eine Tabelle, die sich nie ändert und die der Benutzer nicht sieht. Der Benutzer kann einen Wert eingeben, der in der Tabelle nicht genau angegeben ist, in welchem ​​Fall die App den Wert gleich oder kleiner verwenden und sein Äquivalent zurückgeben sollte (d. H. 7 -> 110,3). Ich werde dann den zurückgegebenen Wert in einer Formel verwenden.Gibt es ein Java-Äquivalent für Excel vlookup?

. A  B  
1 0 110.3 
2 5 110.3 
3 10 110.7 
4 15 111.2 
5 20 111.3 
6 25 112.3 
+0

die Werte in Spalte A Sind alle Faktoren von 5? – Jahnold

+0

Nein, es geht von 0 bis 90 nach Faktoren von 5, aber der letzte Wert in der Spalte A i 91. – Novak

Antwort

1

A TreeMap hat Methoden höher oder niedriger Schlüssel und Einträge zu finden. Kann beispielsweise wie folgt verwendet werden:

private static final TreeMap<Integer, Double> table = new TreeMap<Integer, Double>(); 
static { 
    table.put(0, 110.3); 
    table.put(5, 110.3); 
    table.put(10, 110.7); 
    table.put(15, 110.7); 
    table.put(20, 111.2); 
    table.put(25, 112.3); 
} 

private static double lookup(int value) { 
    Entry<Integer, Double> floorEntry = table.floorEntry(value); 
    if (floorEntry == null) 
     return -1; // or throw sth 
    return floorEntry.getValue(); 
} 

public static void main(String[] args) { 
    System.out.println(lookup(7)); 
} 

110,3

Verwandte Themen