Rumah  >  Artikel  >  Java  >  Cari kedudukan elemen dalam Java TreeMap

Cari kedudukan elemen dalam Java TreeMap

王林
王林ke hadapan
2023-08-24 17:05:021068semak imbas

在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:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam