ciao, si sono 20 milioni di record.
io ho provato a fare cosi e lo ordina metto il codice sotto.
il problema è che non riesco a farlo con i tipi generici.
mi potresti dare una mano per capire come funzionano i tipi generici ?
grazie mille
codice:package sort; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.util.ArrayList; public class mainSort { public static void main(String[] args) { try{ ArrayList<records> lista = new ArrayList<records>(); FileReader input = new FileReader("C:/file.csv"); BufferedReader f = new BufferedReader(input); String linea ; int i = 0; while((linea = f.readLine()) != null){ int id = Integer.parseInt(linea.split(",")[0]); String field1 = linea.split(",")[1]; int field2 = Integer.parseInt(linea.split(",")[2]); float field3 = Float.parseFloat(linea.split(",")[3]); lista.add(new records(id, field1, field2, field3 )); System.out.println(i++); } f.close(); insertionSort s = new insertionSort(lista); s.sort(); for(records p: s.getInputList()){ System.out.println(p.getField2()); } } catch(Exception e){ System.out.println("verificato un errore"); } } }codice:package sort; import java.util.ArrayList; public class insertionSort { private ArrayList<records> inputList = new ArrayList<records>(); public ArrayList <records> getInputList() { return inputList; } //costruttore //tramite il costruttore passiamo a insertionSort la lista public insertionSort(ArrayList<records> input){ this.inputList = input; } public void sort (){ records tmp ; for(int i=1; i< inputList.size(); i++){ for(int j = i; j>0; j--){ int key = inputList.get(j).getField2(); if(key < inputList.get(j-1).getField2()){ tmp = inputList.get(j); inputList.set(j, inputList.get(j-1)); inputList.set(j-1, tmp); } } } } }codice:package sort; public class records { private int id; private String field1; private int field2; private float field3; public records(int id, String field1, int field2, float field3){ this.id = id; this.field1 = field1; this.field2 = field2; this.field3 = field3; } public int getId(){ return id; } public String getField1(){ return field1; } public int getField2(){ return field2; } public float getField3(){ return field3; } }

Rispondi quotando