Czytam ogromną liczbę liczb całkowitych z pliku, a na koniec chcę uzyskać podstawowe statystyki z tych liczb całkowitych (mediana, średnia, 25-ty centyl, 75-ty percentyl, itd.). Mogę obliczyć niektóre z tych statystyk w ruchu, ale wydaje mi się, że obliczenie 25./75 centyla byłoby skomplikowane. Najprostszym podejściem, jak sądzę, byłoby umieszczenie liczb całkowitych na liście i wykonanie statystyk z tej listy. Jednak, ponieważ lista jest tak duża, może spowolnić program używania tak dużej ilości pamięci. Czy macie jakieś sugestie? Jest to rodzaj jak ja zdobyć dane i obie opcje myślałem:Statystyki dotyczące dużego strumienia liczb całkowitych w java
Scanner input = new Scanner(new File("name"));
ArrayList<Integer> lits= new ArrayList<Integer>();
while(input.hasNextLine()){
list.add(Integer.parseInt(input.nextLine()));
}
doStatistics(list);
LUB
Scanner input = new Scanner(new File("name"));
while(input.hasNextLine()){
//I dont know how I would acomplish this for the percentile stats
acqquireStats(Integer.parseInt(input.nextLine()));
}
Czy liczby całkowite są ograniczone? tj. między 0 a 10^5 czy coś w tym stylu? – Andrew
Tak, są one w przedziale od 0 do 100 około –
Następnie należy rozważyć liczenie wystąpień liczb zamiast ich akumulacji. o wiele łatwiejsze w obsłudze tego zestawu danych. think, 'new Array [100]' – Andrew