Avatar billede Miko93 Nybegynder
03. juni 2013 - 14:40 Der er 5 kommentarer

Perfomance arraylist

Hvordan kan man sammenligne to arraylists indeholdene ca. 1 million string hver, for at se hvor mange strings de har tilfælles?

Det handler om at man har to filer som hver har ca. 1 million linjer. Man skal finde ud af hvor mange linjer som der er i fil 1 som fil 2 også har.

Det skal gå hurtigst muligt, hvordan???
Avatar billede arne_v Ekspert
03. juni 2013 - 14:58 #1
Laes alle linier fra en fil ind i et HashSet.

Saa laes en linie af gangen fra den anden fil og check om den er i HashSet.
Avatar billede Miko93 Nybegynder
03. juni 2013 - 15:00 #2
hvordan kan jeg læse filen ind hurtigst muligt?

hmmm. hvordan kan jeg checke den anden fil uden at læse den ind?
Avatar billede arne_v Ekspert
03. juni 2013 - 15:22 #3
BufferedReader med en stor buffer.

Den skal ogsaa laeses ind men du kan processe en linie af gangen.
Avatar billede arne_v Ekspert
04. juni 2013 - 01:43 #4
Til inspiration:

    public static <T> List<T> intersect(List<T> list1, List<T> list2) {
        List<T> res = new ArrayList<T>();
        TreeSet<T> ts = new TreeSet<T>(list1);
        for(T o : list2) {
            if(ts.contains(o)) {
                res.add(o);
            }
        }
        return res;
    }
Avatar billede arne_v Ekspert
30. juli 2013 - 04:46 #5
OK?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB