Jadual Kandungan
Tatabahasa
Penjelasan tatabahasa
Kaedah 1: Gunakan binarySearch()
Algoritma
Contoh
Penjelasan
Kaedah 2: Gunakan kaedah TreeMap keySet() dan get()
Output
Kaedah 3: Gunakan kaedah entrySet() dan getValue() TreeMap
Kaedah 4: Gunakan kaedah nilai() TreeMap dan indexOf()
Kesimpulan
Rumah Java javaTutorial Cari kedudukan elemen dalam Java TreeMap

Cari kedudukan elemen dalam Java TreeMap

Aug 24, 2023 pm 05:05 PM

在Java TreeMap中查找元素的位置

Di Java, kelas TreeMap menyediakan cara yang cekap untuk menyimpan pasangan nilai kunci dalam cara yang teratur. Kadangkala, kita mungkin perlu mengetahui kedudukan elemen tertentu dalam TreeMap. Dalam artikel ini, kami akan meneroka cara yang berbeza untuk menyelesaikan tugas ini. Kami akan membincangkan sintaks, algoritma dan menyediakan contoh kod boleh laku untuk setiap kaedah.

Tatabahasa

Untuk mencari kedudukan elemen dalam Java TreeMap kita boleh menggunakan sintaks berikut -

int position = Collections.binarySearch(treeMap.values(), element);

Penjelasan tatabahasa

Strategi Collections.binarySearch() digunakan untuk melakukan carian binari pada senarai disusun. Dalam kes kami, kami menghantar nilai TreeMap kepada strategi dan lulus komponen di mana kami perlu mencari lokasi. Dasar mengembalikan kedudukan komponen jika komponen ditemui dalam senarai, jika tidak, ia mengembalikan nilai negatif.

Kaedah 1: Gunakan binarySearch()

Algoritma

  • Gunakan kaedah values() untuk mendapatkan nilai daripada TreeMap.

  • Gunakan Collections.binarySearch() untuk melakukan carian binari pada nilai.

  • Simpan hasilnya dalam pembolehubah yang dipanggil kedudukan.

  • Jika kedudukan lebih besar daripada atau sama dengan 0, elemen ditemui. Jika tidak, ia tiada dalam TreeMap.

Contoh

import java.util.Collections;
import java.util.TreeMap;

public class TreeMapPositionFinder {
   public static void main(String[] args) {
      TreeMap<Integer, String> treeMap = new TreeMap<>();
      treeMap.put(1, "Apple");
      treeMap.put(2, "Banana");
      treeMap.put(3, "Orange");
      treeMap.put(4, "Mango");

      String element = "Banana";

      int position = Collections.binarySearch(treeMap.values(), element);

      if (position >= 0) {
         System.out.println("Element found at position: " + (position + 1));
      } else {
         System.out.println("Element not found in the TreeMap.");
      }
   }
}

Penjelasan

Dalam kaedah ini, kami mencipta TreeMap dan mengisinya dengan beberapa pasangan nilai kunci. Kemudian kami menentukan elemen yang kami cari, dalam kes ini "Pisang". Gunakan kaedah Collections.binarySearch() untuk mencari elemen dalam nilai TreeMap. Jika elemen ditemui, kami mencetak kedudukannya dengan menambah 1 pada pembolehubah kedudukan. Jika tidak, kami menunjukkan bahawa elemen tidak dipaparkan dalam TreeMap.

Kaedah 2: Gunakan kaedah TreeMap keySet() dan get()

Algoritma

  • Gunakan kaedah keySet() untuk mendapatkan keySet daripada TreeMap.

  • Lelaran pada kekunci.

  • Semak sama ada nilai yang dikaitkan dengan setiap kunci adalah sama dengan elemen yang kami cari.

  • Jika padanan ditemui, kunci yang sepadan disimpan dalam pembolehubah yang dipanggil kedudukan.

  • Jika kedudukan tidak kosong, bermakna elemen telah dijumpai. Jika tidak, ia tidak wujud dalam TreeMap.

Contoh

import java.util.TreeMap;

public class TreeMapPositionFinder {
   public static void main(String[] args) {
      TreeMap<Integer, String> treeMap = new TreeMap<>();
      treeMap.put(1, "Apple");
      treeMap.put(2, "Banana");
      treeMap.put(3, "Orange");
      treeMap.put(4, "Mango");

      String element = "Banana";
      Integer position = null;

      for (Integer key : treeMap.keySet()) {
         if (treeMap.get(key).equals(element)) {
            position = key;
            break;
         }
      }

      if (position != null) {
         System.out.println("Element found at position: " + position);
      } else {
         System.out.println("Element not found in the TreeMap.");
      }
   }
}

Output

Element found at position: 2

Penjelasan

Dalam kaedah ini, kami sekali lagi mencipta TreeMap dan mengisinya dengan pasangan nilai kunci. Kami menerangkan komponen yang perlu kami cari, dalam kes ini "Pisang". Kami kemudiannya menggunakan gelung untuk setiap gelung untuk mengulangi kekunci dan menyemak sama ada nilai yang dikaitkan dengan setiap kunci sepadan dengan elemen yang kami cari. Jika padanan ditemui, kami menyimpan kunci yang sepadan dalam pembolehubah kedudukan. Akhir sekali, kami menyemak sama ada kedudukan itu tidak sah untuk menentukan sama ada elemen dipaparkan dalam TreeMap.

Kaedah 3: Gunakan kaedah entrySet() dan getValue() TreeMap

Algoritma

  • Gunakan kaedah entrySet() untuk mendapatkan entrySet daripada TreeMap.

  • Gelung melalui entri.

  • Semak sama ada nilai setiap entri adalah sama dengan elemen yang kita cari.

  • Jika padanan ditemui, kunci yang sepadan disimpan dalam pembolehubah yang dipanggil kedudukan.

  • Jika kedudukan tidak kosong, bermakna elemen telah dijumpai. Jika tidak, ia tidak wujud dalam TreeMap.

Contoh

import java.util.Map;
import java.util.TreeMap;

public class TreeMapPositionFinder {
   public static void main(String[] args) {
      TreeMap<Integer, String> treeMap = new TreeMap<>();
      treeMap.put(1, "Apple");
      treeMap.put(2, "Banana");
      treeMap.put(3, "Orange");
      treeMap.put(4, "Mango");

      String element = "Banana";
      Integer position = null;

      for (Map.Entry<Integer, String> entry : treeMap.entrySet()) {
         if (entry.getValue().equals(element)) {
            position = entry.getKey();
            break;
         }
      }

      if (position != null) {
         System.out.println("Element found at position: " + position);
      } else {
         System.out.println("Element not found in the TreeMap.");
      }
   }
}

Output

Element found at position: 2

Penjelasan

Sama seperti kaedah kedua, kami mencipta TreeMap, mengisinya dan menerangkan komponen yang perlu kami temui. Kami kemudian menggunakan gelung untuk-setiap untuk menyerlahkan entri TreeMap dan menyemak sama ada nilai setiap entri sepadan dengan komponen. Jika padanan ditemui, kami menyimpan kunci yang sepadan dalam pembolehubah kedudukan. Akhir sekali, kami menyemak sama ada kedudukan itu tidak sah untuk menentukan sama ada komponen dipaparkan dalam TreeMap.

Kaedah 4: Gunakan kaedah nilai() TreeMap dan indexOf()

Algoritma

  • Gunakan kaedah values() untuk mendapatkan nilai daripada TreeMap.

  • Cari indeks unsur menggunakan kaedah indexOf().

  • Jika indeks lebih besar daripada atau sama dengan 0, ini bermakna elemen telah ditemui. Jika tidak, ia tiada dalam TreeMap.

Contoh

import java.util.ArrayList;
import java.util.TreeMap;

public class TreeMapPositionFinder {
   public static void main(String[] args) {
      TreeMap<Integer, String> treeMap = new TreeMap<>();
      treeMap.put(1, "Apple");
      treeMap.put(2, "Banana");
      treeMap.put(3, "Orange");
      treeMap.put(4, "Mango");

      String element = "Mango";

      ArrayList<String> values = new ArrayList<>(treeMap.values());
      int position = values.indexOf(element);

      if (position >= 0) {
         System.out.println("Element found at position: " + (position + 1));
      } else {
         System.out.println("Element not found in the TreeMap.");
      }
   }
}

Output

Element found at position: 4

Penjelasan

Dalam kaedah ini, kami mula-mula mencipta TreeMap dan mengisinya. Kami menerangkan komponen yang perlu kami temui, di sini "Pisang". Kemudian, kami menggunakan kaedah values() untuk mencipta ArrayList yang mengandungi nilai TreeMap. Kami mencari indeks komponen dalam ArrayList menggunakan kaedah indexOf(). Jika indeks lebih besar daripada atau sama dengan 0, kami mencetak kedudukan komponen. Jika tidak, kami menunjukkan bahawa elemen tidak dipaparkan dalam TreeMap.

Kesimpulan

Dalam artikel ini, kami meneroka cara yang berbeza untuk mencari kedudukan elemen dalam Java TreeMap. Kami memeriksa binaan bahasa, pengiraan dan menyediakan contoh kod boleh laku untuk setiap pendekatan. Bergantung pada keperluan dan keutamaan khusus anda, anda boleh memilih kaedah yang paling sesuai dengan keperluan anda. Kursus TreeMap di Java menyediakan cara yang berkuasa dan cekap untuk menyimpan dan memanipulasi data yang diisih, membolehkan anda melakukan pelbagai operasi dengan mudah.

Atas ialah kandungan terperinci Cari kedudukan elemen dalam Java TreeMap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Skop pembolehubah PHP dijelaskan
1 bulan yang lalu By 百草
Mengulas kod dalam php
4 minggu yang lalu By 百草
Petua untuk menulis komen php
4 minggu yang lalu By 百草

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1510
276
Bagaimana menangani transaksi di Java dengan JDBC? Bagaimana menangani transaksi di Java dengan JDBC? Aug 02, 2025 pm 12:29 PM

Untuk mengendalikan transaksi JDBC dengan betul, anda mesti terlebih dahulu mematikan mod komit automatik, kemudian melakukan pelbagai operasi, dan akhirnya melakukan atau mengembalikan semula hasilnya; 1. Panggil Conn.SetAutOcommit (palsu) untuk memulakan transaksi; 2. Melaksanakan pelbagai operasi SQL, seperti memasukkan dan mengemaskini; 3. Panggil Conn.Commit () jika semua operasi berjaya, dan hubungi conn.rollback () jika pengecualian berlaku untuk memastikan konsistensi data; Pada masa yang sama, cuba-dengan-sumber harus digunakan untuk menguruskan sumber, mengendalikan pengecualian dengan betul dan menutup sambungan untuk mengelakkan kebocoran sambungan; Di samping itu, adalah disyorkan untuk menggunakan kolam sambungan dan menetapkan mata simpan untuk mencapai rollback separa, dan menyimpan urus niaga sesingkat mungkin untuk meningkatkan prestasi.

Penanda aras prestasi benang maya java Penanda aras prestasi benang maya java Jul 21, 2025 am 03:17 AM

Benang maya mempunyai kelebihan prestasi yang signifikan dalam senario yang sangat konkurensi dan intensif, tetapi perhatian harus dibayar kepada kaedah ujian dan senario yang berkenaan. 1. Ujian yang betul harus mensimulasikan perniagaan sebenar, terutamanya senario menyekat IO, dan menggunakan alat seperti JMH atau Gatling untuk membandingkan benang platform; 2. Jurang throughput adalah jelas, dan boleh beberapa kali hingga sepuluh kali lebih tinggi daripada 100,000 permintaan serentak, kerana ia lebih ringan dan cekap dalam penjadualan; 3. Semasa ujian, adalah perlu untuk mengelakkan membabi buta mengejar nombor konvensional yang tinggi, menyesuaikan diri dengan model IO yang tidak menyekat, dan memberi perhatian kepada petunjuk pemantauan seperti latensi dan GC; 4.

cara menetapkan pembolehubah persekitaran java_home di tingkap cara menetapkan pembolehubah persekitaran java_home di tingkap Jul 18, 2025 am 04:05 AM

Tosetjava_homeonwindows, firstlocatethejdkinstallationpath (mis., C: \ Programfiles \ java \ jdk-17), thencreateasystemenvironmentvaria blenamedjava_homewiththatpath.next, updateThePathvariableByadding%java \ _home%\ bin, andverifythesetupingjava-versionandjavac-v

Java Microservices Perkhidmatan Mesh Integrasi Java Microservices Perkhidmatan Mesh Integrasi Jul 21, 2025 am 03:16 AM

ServiceMesh adalah pilihan yang tidak dapat dielakkan untuk evolusi seni bina microservice Java, dan terasnya terletak pada decoupling logik rangkaian dan kod perniagaan. 1. ServiceMesh mengendalikan pengimbangan beban, fius, pemantauan dan fungsi lain melalui agen sidecar untuk memberi tumpuan kepada perniagaan; 2. INTOR ISTIO sesuai untuk projek sederhana dan besar, dan Linkerd lebih ringan dan sesuai untuk ujian berskala kecil; 3. Java microservices harus menutup, reben dan komponen lain dan menyerahkannya kepada Istiod untuk penemuan dan komunikasi; 4. Memastikan suntikan automatik sidecar semasa penempatan, perhatikan konfigurasi peraturan lalu lintas, keserasian protokol, dan pembinaan sistem penjejakan log, dan mengamalkan penghijrahan tambahan dan perancangan pemantauan pra-kawalan.

Melaksanakan senarai yang dipautkan di Java Melaksanakan senarai yang dipautkan di Java Jul 20, 2025 am 03:31 AM

Kunci untuk melaksanakan senarai yang dipautkan adalah untuk menentukan kelas nod dan melaksanakan operasi asas. ①First Buat kelas nod, termasuk data dan rujukan kepada nod seterusnya; ② Kemudian buat kelas LinkedList, melaksanakan fungsi penyisipan, penghapusan dan percetakan; Kaedah tambahan digunakan untuk menambah nod pada ekor; ④ Kaedah PrintList digunakan untuk mengeluarkan kandungan senarai yang dipautkan; ⑤ Kaedah DeletewithValue digunakan untuk memadam nod dengan nilai tertentu dan mengendalikan situasi yang berbeza dari nod kepala dan nod perantaraan.

Keselamatan Java untuk Suntikan Template-Side Server Keselamatan Java untuk Suntikan Template-Side Server Jul 16, 2025 am 01:15 AM

Mencegah Suntikan Template-Side Server (SSTI) memerlukan empat aspek: 1. Gunakan konfigurasi keselamatan, seperti melumpuhkan panggilan kaedah dan menyekat beban kelas; 2. Elakkan input pengguna sebagai kandungan templat, hanya penggantian berubah -ubah dan mengesahkan input ketat; 3. Mengamalkan persekitaran kotak pasir, seperti kerikil, kumis atau konteks rendering mengasingkan; 4. Secara kerap mengemas kini versi bergantung dan semak logik kod untuk memastikan bahawa enjin templat dikonfigurasi dengan munasabah dan menghalang sistem daripada diserang disebabkan oleh templat yang dikawal oleh pengguna.

Pengoptimuman Rangka Kerja Koleksi Lanjutan Pengoptimuman Rangka Kerja Koleksi Lanjutan Jul 20, 2025 am 03:48 AM

Untuk meningkatkan prestasi Rangka Kerja Koleksi Java, kami dapat mengoptimumkan dari empat mata berikut: 1. Pilih jenis yang sesuai mengikut senario, seperti akses rawak yang kerap ke ArrayList, carian cepat ke hashset, dan serentak untuk persekitaran serentak; 2. Menetapkan kapasiti dan faktor beban yang munasabah semasa permulaan untuk mengurangkan overhead pengembangan kapasiti, tetapi elakkan sisa memori; 3. Gunakan set yang tidak berubah (seperti list.of ()) untuk meningkatkan keselamatan dan prestasi, sesuai untuk data tetap atau baca sahaja; 4. Mencegah kebocoran memori, dan gunakan rujukan lemah atau perpustakaan cache profesional untuk menguruskan set survival jangka panjang. Butiran ini memberi kesan ketara kepada kestabilan dan kecekapan program.

Membandingkan kerangka Java: Spring Boot vs Quarkus vs Micronaut Membandingkan kerangka Java: Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

Pra-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusoftenperforminglightbetterine serverless scenarios.tyvelopecosyste,

See all articles