Koleksi Java ialah salah satu struktur data yang paling biasa digunakan di Jawa. Ia bukan sahaja menyediakan fungsi pengurusan data yang berkuasa, tetapi juga boleh mengurangkan banyak penulisan kod dalam kebanyakan kes. Dalam artikel ini, kami akan berkongsi beberapa petua penggunaan koleksi Java yang cekap untuk membantu anda meningkatkan kualiti dan kecekapan kod.
Koleksi Java biasanya menggunakan untuk setiap gelung, yang boleh menjadikan kod lebih ringkas dan mudah difahami. Walau bagaimanapun, dalam beberapa kes adalah lebih cekap untuk menggunakan lelaran gelung. Sebagai contoh, apabila memadamkan elemen, menggunakan untuk setiap satu akan membuang pengecualian pengubahsuaian serentak, tetapi menggunakan iterator boleh mengelakkan pengecualian ini.
Contoh kod:
// for-each循环 for (String str : list) { if (str.equals("foo")) { list.remove(str); } } // 使用迭代器 Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String str = iterator.next(); if (str.equals("foo")) { iterator.remove(); } }
Apabila memilih koleksi, anda perlu mempertimbangkan koleksi mana yang hendak digunakan untuk meningkatkan kecekapan kod . Sebagai contoh, jika anda perlu kerap memasukkan dan memadam elemen, menggunakan LinkedList akan menjadi lebih cekap daripada ArrayList jika anda perlu mengisih elemen, menggunakan TreeSet atau TreeMap akan menjadi lebih cekap.
Kod sampel:
List<Integer> linkedList = new LinkedList<>(); List<Integer> arrayList = new ArrayList<>(); for (int i = 0; i < 1000000; i++) { linkedList.add(i); arrayList.add(i); } // 对比插入和删除的效率 long linkStartTime = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { linkedList.remove(0); linkedList.add(0, i); } System.out.println("LinkedList: " + (System.currentTimeMillis() - linkStartTime) + "ms"); long arrayStartTime = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { arrayList.remove(0); arrayList.add(0, i); } System.out.println("ArrayList: " + (System.currentTimeMillis() - arrayStartTime) + "ms");
Java menyediakan kelas alat Collections untuk membantu kami mengendalikan koleksi, yang sangat mudah untuk digunakan. Sebagai contoh, anda boleh menggunakan kaedah Collections.sort() untuk mengisih koleksi; menggunakan kaedah Collections.max() dan Collections.min() untuk mendapatkan nilai maksimum dan minimum dalam koleksi.
Kod contoh:
List<Integer> list = Arrays.asList(5, 2, 3, 1, 4); // 通过Collections.sort()方法来对集合进行排序 Collections.sort(list); System.out.println(list); // 获取集合中的最大值和最小值 int max = Collections.max(list); int min = Collections.min(list); System.out.println("Max: " + max + ", Min: " + min);
Java 8 memperkenalkan ungkapan Lambda, menjadikan kod lebih ringkas dan mudah difahami . Menggunakan ungkapan Lambda, kita boleh menggunakan pengaturcaraan berfungsi untuk mengendalikan koleksi.
Kod contoh:
List<Integer> list = Arrays.asList(5, 2, 3, 1, 4); // 使用Lambda表达式来对集合进行操作 list.forEach(integer -> System.out.print(integer + " ")); System.out.println(); list.stream() .filter(integer -> integer % 2 == 0) .map(integer -> integer * 2) .forEach(integer -> System.out.print(integer + " ")); System.out.println();
Jika anda perlu menyahduplikasi atau memproses data, Ini boleh dicapai menggunakan Set dan Peta. Sebagai contoh, anda boleh menggunakan HashSet untuk menyahduplikasi data, menggunakan HashMap untuk merekodkan bilangan kali data muncul, dsb.
Kod contoh:
List<Integer> list = Arrays.asList(5, 2, 3, 1, 4, 2, 5, 1); // 使用HashSet来对数据进行去重 Set<Integer> set = new HashSet<>(list); System.out.println(set); // 使用HashMap来记录数据出现的次数 Map<Integer, Integer> map = new HashMap<>(); for (Integer integer : list) { Integer count = map.get(integer); if (count == null) { map.put(integer, 1); } else { map.put(integer, count + 1); } } System.out.println(map);
Ringkasnya, koleksi Java ialah salah satu struktur data yang paling biasa digunakan dalam Java Penggunaan koleksi Java yang betul memainkan peranan yang sangat penting dalam meningkatkan kualiti dan kecekapan kod. Cuba petua ini dan gunakannya pada projek khusus anda untuk hasil kod yang lebih baik.
Atas ialah kandungan terperinci Menggunakan Koleksi Java dengan Cekap: Petua Praktikal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!