Rumah > Java > javaTutorial > teks badan

Menggunakan Koleksi Java dengan Cekap: Petua Praktikal

WBOY
Lepaskan: 2023-06-16 11:06:10
asal
1271 orang telah melayarinya

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.

  1. Elakkan menggunakan iterator gelung yang tidak perlu

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();
    }
}
Salin selepas log masuk
  1. Gunakan koleksi yang lebih cekap

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");
Salin selepas log masuk
  1. Gunakan kelas alat Collections untuk operasi pengumpulan

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);
Salin selepas log masuk
  1. Gunakan ungkapan Lambda untuk mengendalikan koleksi

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();
Salin selepas log masuk
  1. Gunakan Set dan Peta untuk penyahduplikasian dan pemprosesan data

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);
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan