Rumah  >  Artikel  >  Java  >  Cara menggunakan fungsi TreeSet dalam Java untuk operasi set yang dipesan

Cara menggunakan fungsi TreeSet dalam Java untuk operasi set yang dipesan

王林
王林asal
2023-06-26 14:51:101813semak imbas

Java's TreeSet ialah set tertib yang dilaksanakan berdasarkan pokok merah-hitam. Cirinya ialah elemen diisih mengikut saiz, dan elemen boleh ditambah, dipadam dan dicari dengan cepat. Artikel ini akan memperkenalkan cara menggunakan fungsi TreeSet dalam Java untuk melaksanakan operasi set tertib supaya ia boleh digunakan dengan lebih baik dalam pengaturcaraan sebenar.

1. Operasi asas TreeSet

1 Buat objek TreeSet

Untuk menggunakan TreeSet, anda perlu mencipta objek TreeSet terlebih dahulu. Anda boleh menggunakan pembina tanpa parameter untuk mencipta TreeSet kosong, atau anda boleh menentukan Comparator untuk menyesuaikan penyusunan apabila mencipta objek TreeSet.

Kod contoh:

TreeSet<Integer> set = new TreeSet<>();
TreeSet<String> set2 = new TreeSet<>(new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        // 自定义排序规则
        return o1.compareToIgnoreCase(o2);
    }
});

2. Tambah elemen

Tambah elemen pada TreeSet melalui kaedah add(). TreeSet akan mengisih elemen secara automatik mengikut saiz, dan elemen yang sama hanya akan disimpan sekali.

Kod contoh:

set.add(3);
set.add(1);
set.add(2);
set.add(3);
// 结果为[1, 2, 3]
System.out.println(set);

3 Padam elemen

Anda boleh menggunakan kaedah remove() untuk memadamkan elemen dalam TreeSet.

Kod sampel:

set.remove(3);
// 结果为[1, 2]
System.out.println(set);

4 Tentukan sama ada unsur wujud

Anda boleh menggunakan kaedah contains() untuk menentukan sama ada unsur wujud dalam TreeSet.

Kod sampel:

boolean contains = set.contains(2);
// 结果为true
System.out.println(contains);

5 Dapatkan bilangan elemen

Anda boleh menggunakan kaedah saiz() untuk mendapatkan bilangan elemen dalam TreeSet.

Kod contoh:

int size = set.size();
// 结果为2
System.out.println(size);

6 Elemen traverse

Anda boleh menggunakan kaedah gelung for atau forEach() untuk melintasi elemen dalam TreeSet.

Kod contoh:

for (Integer i : set) {
    System.out.print(i + " ");
}
System.out.println();

set.forEach(System.out::println);

Hasil keluaran:

1 2 
1
2

2 Operasi lanjutan TreeSet

1. Dapatkan elemen pertama dan elemen terakhir

Anda boleh menggunakan kaedah pertama() dan terakhir() untuk mendapatkan yang ketiga. elemen dalam TreeSet satu elemen dan elemen terakhir.

Kod sampel:

Integer first = set.first();
Integer last = set.last();
// 结果为1 2
System.out.println(first + " " + last);

2. Dapatkan subset

Anda boleh menggunakan kaedah subSet() untuk mendapatkan subset TreeSet, yang mengandungi elemen daripada dariElement (termasuk) kepadaElement (eksklusif). Jika fromElement tidak dinyatakan, ia bermakna bermula dari elemen pertama dalam TreeSet.

Kod contoh:

TreeSet<Integer> subSet = (TreeSet<Integer>) set.subSet(1, 2);
// 结果为[1]
System.out.println(subSet);

TreeSet<String> subSet2 = (TreeSet<String>) set2.subSet("A", "c");
// 结果为[b, C]
System.out.println(subSet2);

Perlu diingatkan bahawa jika subset berubah, TreeSet asal juga akan berubah.

3. Dapatkan subset elemen kepala atau ekor

Anda boleh menggunakan kaedah headSet() dan kaedah tailSet() untuk mendapatkan subset elemen kepala (tidak termasuk toElement) atau ekor (termasuk dariElement) TreeSet.

Kod sampel:

TreeSet<Integer> headSet = (TreeSet<Integer>) set.headSet(2);
// 结果为[1]
System.out.println(headSet);

TreeSet<String> tailSet = (TreeSet<String>) set2.tailSet("b");
// 结果为[b, C]
System.out.println(tailSet);

Juga ambil perhatian bahawa jika subset berubah, TreeSet asal juga akan berubah.

4 Dapatkan elemen yang lebih kecil atau lebih besar daripada elemen yang ditentukan

Anda boleh menggunakan kaedah lower(), kaedah floor(), kaedah higher() dan kaedah siling() untuk mendapatkan elemen yang lebih kecil atau lebih besar daripada. elemen yang ditentukan.

Kod sampel:

Integer lower = set.lower(2);
Integer floor = set.floor(2);
Integer higher = set.higher(1);
Integer ceiling = set.ceiling(1);
// 结果为1 2 2 1
System.out.println(lower + " " + floor + " " + higher + " " + ceiling);

Perlu diingatkan bahawa:

  • Perbezaan antara kaedah lower() dan kaedah floor() ialah: kaedah lower() memperoleh elemen terbesar yang lebih kecil daripada elemen yang ditentukan, iaitu , elemen terbesar yang lebih kecil daripada elemen yang ditentukan; Kaedah floor() memperoleh elemen terdekat yang lebih kecil daripada elemen yang ditentukan, iaitu elemen terdekat yang kurang daripada atau sama dengan elemen yang ditentukan.
  • Perbezaan antara kaedah higher() dan kaedah ceiling() ialah: kaedah higher() mendapat elemen terkecil yang lebih besar daripada elemen yang ditentukan, iaitu elemen terkecil yang lebih besar daripada elemen yang ditentukan; kaedah siling() mendapat elemen terdekat yang lebih besar daripada elemen yang ditentukan, Iaitu, elemen terdekat yang lebih besar daripada atau sama dengan elemen yang ditentukan.

3. Ringkasan

Artikel ini memperkenalkan operasi asas dan operasi lanjutan fungsi TreeSet dalam Java. Anda boleh memilih kaedah operasi yang sepadan mengikut keperluan sebenar untuk melaksanakan operasi pengumpulan yang dipesan. Perlu diingat bahawa apabila menggunakan kaedah subSet(), kaedah headSet() dan kaedah tailSet(), jika subset berubah, TreeSet asal juga akan berubah, jadi anda perlu mengingati perkara ini.

Atas ialah kandungan terperinci Cara menggunakan fungsi TreeSet dalam Java untuk operasi set yang dipesan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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