2016-06-06 12 views
0

So ist die Situation, die ich von Angesicht zu holen, ist dies:Wie 100 Artikel ziemlich aus einer Liste von x

ich ein Grafik-Rendering, aber jeder Eintrag ich, um es hinzuzufügen verringert die Ladezeit. Ich möchte, dass das Diagramm maximal 100 Einträge verwendet, aber die Anzahl der Einträge, die ich habe, ist variabel.

Also sagen wir, ich habe 500 Einträge für dieses Diagramm zur Verfügung. Nur 100 von ihnen sollten dem Diagramm hinzugefügt werden, gleichmäßig verteilt (also e1, e6, e11, e16 ... e496). Wenn ich weniger Einträge als 100 habe, sollte es die Einträge verwenden, die ich habe.

So:

500 -> 100 
150 -> 100 
50 -> 50 
10 -> 10 

Welche Formel/Schleife soll ich verwenden, um zu bestimmen, welche Einträge für die Grafik ausgewählt werden?

Antwort

0

Dies sollte entweder den Job oder zumindest geben Ihnen einen Vorsprung:

fun reduce(List list, int maxLen) : List { 

    int skip = list.length > maxLen ? list.length/maxLen : 1; 

    List r = new list(); 

    for(int i=0; i<list.length; i+=skip){ 
     r.add(list[i]) 
    } 

    return r; 
} 

Liste listOf100 = reduzieren (aBigList, 100);

Verwandte Themen