Java'da GezinilebilirSet bir alt türüdür Sıralanmış Küme arayüz. Belirli bir öğenin azalan sıra yinelemesi ve diğerleri için en yakın eşleşmeleri elde etmek gibi çeşitli işlemleri gerçekleştirmemize olanak tanır. Kümedeki öğeler arasında gezinmek için yöntemler sağlar.
Örneğin NavigableSet arayüzü, yalnızca artan sırayı destekleyen SortedSet'in aksine, sette hem artan hem de azalan sırada gezinmemize olanak tanır. NavigableSet arayüzünü uygulayan sınıflar şunlardır: AğaçSet Ve ConcurrentSkipListSet
- NavigableSet, SortedSet'i genişletir ve böylece First() Last() HeadSet() TailSet() vb. gibi yöntemler sağlar.
- Her iki yönde artan ve azalan sırada gezinmenizi sağlar
- NavigableSet'in en yaygın uygulaması TreeSet'tir.
Örnek: Bu örnek, TreeSet kullanarak bir NavigableSet oluşturmayı ve bu sete, bunları otomatik olarak artan düzende sıralayan öğeler eklemeyi gösterir.
Java
// Java program to demonstrates // the working of NavigableSet import java.util.*; public class Geeks { public static void main(String[] args) { NavigableSet<Integer> ns = new TreeSet<>(); // Add elements to the set ns.add(10); ns.add(20); ns.add(30); ns.add(40); ns.add(50); System.out.println('Navigable Set: ' + ns); } }
Çıkış
Navigable Set: [10 20 30 40 50]
Aşağıdaki diyagram, Java'nın kümelerle ilgili koleksiyon çerçevesindeki kalıtım yapısını göstermektedir.
TreeSet uygulayan bir sınıftır GezinilebilirSet bu da SortedSet'i genişletir, bu da genişletir Ayarlamak .
NavigableSet Bildirgesi
Java'da NavigableSet'in bildirimi şu şekilde bildirilebilir:
GezinilebilirSet
setAdı;
Not: ' Type', kümedeki öğenin türüdür (örneğin, tamsayı String vb.) ve setName, değişkenin adıdır.
c'deki dizi dizisi
NavigableSet Nesneleri Oluşturma
Bir arayüz olduğu için doğrudan NavigableSet oluşturamıyoruz. Bunun yerine şöyle bir sınıf kullanıyoruz AğaçSet bunu uygulayan. Jeneriklerin yardımıyla setin depolayacağı nesnelerin türünü tanımlayabiliriz. Bu tür açısından güvenli küme şu şekilde tanımlanabilir:
GezinilebilirSet
küme = yeni Ağaç Kümesi ();
Örnek: Bu örnek, sıralanmış bir kümeyi hem normal hem de ters sırada değiştirmek ve gezinmek için descedingSet() tailSet() Lower() pollFirst() ve pollLast() gibi çeşitli NavigableSet yöntemlerinin nasıl kullanılacağını gösterir.
Java// Java Program to demostrates the // working of various methods of NavigableSet import java.util.NavigableSet; import java.util.TreeSet; public class Geeks { public static void main(String[] args) { NavigableSet<Integer> ns = new TreeSet<>(); ns.add(0); ns.add(1); ns.add(2); ns.add(3); ns.add(4); ns.add(5); ns.add(6); // Get a reverse view of the navigable set NavigableSet<Integer> revNs = ns.descendingSet(); // Print the normal and reverse views System.out.println('Normal order: ' + ns); System.out.println('Reverse order: ' + revNs); NavigableSet<Integer> t = ns.tailSet(3 true); System.out.println('3 or more: ' + t); System.out.println('lower(3): ' + ns.lower(3)); System.out.println('floor(3): ' + ns.floor(3)); System.out.println('higher(3): ' + ns.higher(3)); System.out.println('ceiling(3): ' + ns.ceiling(3)); System.out.println('pollFirst(): ' + ns.pollFirst()); System.out.println('Navigable Set: ' + ns); System.out.println('pollLast(): ' + ns.pollLast()); System.out.println('Navigable Set: ' + ns); System.out.println('pollFirst(): ' + ns.pollFirst()); System.out.println('Navigable Set: ' + ns); System.out.println('pollFirst(): ' + ns.pollFirst()); System.out.println('Navigable Set: ' + ns); System.out.println('pollFirst(): ' + ns.pollFirst()); System.out.println('Navigable Set: ' + ns); System.out.println('pollFirst(): ' + ns.pollFirst()); System.out.println('pollLast(): ' + ns.pollLast()); } }
Çıkış:
NavigableSet Üzerinde Çeşitli İşlemlerin Gerçekleştirilmesi
1. Öğe Ekleme: Şunu kullanabiliriz: eklemek() NavigableSet'e öğe ekleme yöntemi. Öğeler sıralanmış düzende saklanır, kopyalara izin verilmez ve boş değerler de NavigableSet tarafından kabul edilmez.
Örnek: Bu örnek, kopyaların göz ardı edildiği ve öğelerin artan düzende sıralandığı add() kullanılarak bir NavigableSet'e öğe eklemeyi gösterir.
Java// Java Program to demonstrates the working of add() import java.util.*; import java.io.*; class Geeks { public static void main(String[] args) { NavigableSet<String> ts = new TreeSet<String>(); // Elements are added using add() method ts.add('A'); ts.add('B'); ts.add('C'); ts.add('A'); System.out.println('NavigableSet: ' + ts); } }
Çıkış
NavigableSet: [A B C]
2. Öğelere Erişim: Öğeleri ekledikten sonra öğelere erişmek istiyorsak aşağıdaki gibi yerleşik yöntemleri kullanabiliriz: içerir() Birinci() son() vesaire.
Örnek: Bu örnek, bir NavigableSet'e öğe eklemeyi, bir öğenin varlığını kontrol etmeyi ve ilk ve son öğeleri almayı gösterir.
Java// Java program to demonstrates the // working of contains() first() and last() method import java.util.*; import java.io.*; class Geeks { public static void main(String[] args) { NavigableSet<String> ts = new TreeSet<String>(); // Elements are added using add() method ts.add('A'); ts.add('B'); ts.add('C'); ts.add('A'); System.out.println('NavigableSet: ' + ts); String s = 'D'; // Check if the above string exists in // the NavigableSet or not System.out.println('D exists in the NavigableSet?: ' + ts.contains(s)); // Print the first element in // the NavigableSet System.out.println('First Element of NavigableSet: ' + ts.first()); // Print the last element in // the NavigableSet System.out.println('Last Element of NavigableSet: ' + ts.last()); } }
Çıkış
NavigableSet: [A B C] D exists in the NavigableSet?: false First Element of NavigableSet: A Last Element of NavigableSet: C
mysql kullanıcı oluştur
3. Elemanların Kaldırılması: Değerler NavigableSet'ten aşağıdakiler kullanılarak kaldırılabilir: kaldırmak() anketFirst() anketSon() .
Örnek: Bu örnek, NavigableSet'ten öğelerin kaldırılmasını gösterir.
Java// Java Program to demonstrates the working of remove() // pollFirst() and pollLast() method import java.io.*; import java.util.*; class Geeks { public static void main(String[] args) { NavigableSet<String> ts = new TreeSet<String>(); // Elements are added using add() method ts.add('A'); ts.add('B'); ts.add('C'); ts.add('B'); ts.add('D'); ts.add('E'); System.out.println('NavigableSet: ' + ts); // Removing the element b ts.remove('B'); System.out.println('After removing element ' + ts); // Remove the First element of TreeSet ts.pollFirst(); System.out.println( 'After the removal of First Element ' + ts); // Remove the Last element of TreeSet ts.pollLast(); System.out.println( 'After the removal of Last Element ' + ts); } }
Çıkış
NavigableSet: [A B C D E] After removing element [A C D E] After the removal of First Element [C D E] After the removal of Last Element [C D]
4. Yinelenen Öğeler: NavigableSet'te yineleme yapmanın çeşitli yolları vardır. En ünlüsü şunu kullanmaktır: döngü için geliştirildi.
Örnek: Bu örnek, bir NavigableSet'e öğe eklemeyi ve artan sırada yinelemeyi gösterir.
Java// Java Program to iterate through NavigableSet import java.util.*; import java.io.*; class Geeks { public static void main(String[] args) { NavigableSet<String> ts = new TreeSet<String>(); // Elements are added using add() method ts.add('C'); ts.add('D'); ts.add('E'); ts.add('A'); ts.add('B'); ts.add('Z'); // Iterating though the NavigableSet for (String i : ts) System.out.print(i + ' '); } }
Çıkış
A B C D E Z
Yöntemler
NavigableSet arayüzünde mevcut olan yöntemler aşağıdadır.
Yöntemler | Tanım |
|---|---|
| tavan(E e) | Bu kümedeki, verilen öğeye eşit veya ondan büyük olan en küçük öğeyi veya böyle bir öğe yoksa null değerini döndürür. |
| azalanIterator() | Bu kümedeki öğeler üzerinde azalan sırada bir yineleyici döndürür. |
| azalanSet() | Bu kümede bulunan öğelerin ters sıralı görünümünü döndürür. |
| kat(E e) | Bu kümedeki en büyük öğeyi, verilen öğeden küçük veya ona eşit veya böyle bir öğe yoksa null değerini döndürür. |
| HeadSet(E'den Element'e) | Bu kümenin, öğeleri toElement'ten kesinlikle küçük olan kısmının görünümünü döndürür. |
| headSet(E toElement boolean dahil) | Bu kümenin, öğeleri öğesinden küçük (veya kapsayıcı doğruysa eşit) olan kısmının görünümünü döndürür. |
| daha yüksek(E e) | Bu kümedeki, verilen öğeden kesinlikle büyük olan en küçük öğeyi döndürür veya böyle bir öğe yoksa null değerini döndürür. |
| yineleyici() | Bu kümedeki öğeler üzerinde artan sırada bir yineleyici döndürür. |
| alt(E e) | Bu kümedeki en büyük öğeyi, verilen öğeden kesinlikle daha küçük veya böyle bir öğe yoksa null değerini döndürür. |
| anketFirst() | İlk (en düşük) öğeyi alır ve kaldırır veya bu küme boşsa null değerini döndürür. |
| anketSon() | Son (en yüksek) öğeyi alır ve kaldırır veya bu küme boşsa null değerini döndürür. |
subSet(E fromElement boolean) Inclusive E'den Element boolean'a ve Inclusive'e) | Öğeleri fromElement ile toElement arasında değişen bu kümenin kısmının görünümünü döndürür. |
| subSet(E Eleman E'den Eleman'a) | Öğeleri, Öğe dahil ile Öğe hariç arasında değişen bu kümenin bölümünün görünümünü döndürür. |
| tailSet(Element'ten E) | Bu kümenin, öğeleri fromElement'ten büyük veya ona eşit olan kısmının görünümünü döndürür. |
| tailSet(E fromElement boolean dahil) | Bu kümenin, Öğeleri öğesinden büyük (veya kapsayıcı doğruysa eşit) olan kısmının bir görünümünü döndürür. |
Java.util.SortedSet Arayüzünden Devralınan Yöntemler
Yöntem | Tanım |
|---|---|
| karşılaştırıcı() | Bu yöntem, bu kümedeki öğeleri sıralamak için kullanılan karşılaştırıcıyı döndürür veya bu küme, öğelerinin doğal sıralamasını kullanıyorsa null değerini döndürür. |
| Birinci() | Bu yöntem, bu kümede bulunan ilk (en düşük) öğeyi döndürür. |
| son() | Bu yöntem, kümede bulunan son (en yüksek) öğeyi döndürür. |
| ayırıcı() | Bu sıralanmış kümedeki öğeler üzerinde bir Ayırıcı oluşturur. |
Java.util.Set Arayüzünden Devralınan Yöntemler
Yöntem | Tanım |
|---|---|
| ekle(öğe) | Bu yöntem kümeye belirli bir öğe eklemek için kullanılır. İşlev, yalnızca belirtilen öğe kümede mevcut değilse öğeyi ekler, aksi halde öğe Kümede zaten mevcutsa işlev False değerini döndürür. |
| addAll(koleksiyon) | Bu yöntem, söz konusu koleksiyondaki tüm öğelerin mevcut kümeye eklenmesi için kullanılır. Öğeler herhangi bir özel sıraya uyulmadan rastgele eklenir. |
| temizlemek() | Bu yöntem kümedeki tüm elemanları kaldırmak için kullanılır ancak kümeyi silmek için kullanılmaz. Setin referansı hala mevcuttur. |
| içerir(öğe) | Bu yöntem belirli bir öğenin Sette mevcut olup olmadığını kontrol etmek için kullanılır. |
| içerirHepsi(koleksiyon) | Bu yöntem, kümenin verilen koleksiyonda bulunan tüm öğeleri içerip içermediğini kontrol etmek için kullanılır. Bu yöntem, kümenin tüm öğeleri içermesi durumunda true değerini döndürür, öğelerden herhangi birinin eksik olması durumunda false değerini döndürür. |
| eşittir() | Belirtilen nesneyi eşitlik için bu kümeyle karşılaştırır. |
| hashCode() | Bu yöntem, Set'in bu örneğinin hashCode değerini almak için kullanılır. Kümenin bu örneği için hashCode değeri olan bir tamsayı değeri döndürür. |
| isEmpty() | Bu yöntem bir NavigableSet'in boş olup olmadığını kontrol etmek için kullanılır. |
| kaldır(öğe) | Bu yöntem verilen elemanı kümeden çıkarmak için kullanılır. Bu yöntem, belirtilen öğe Set'te mevcutsa True'yu döndürür, aksi takdirde False'ı döndürür. |
| Tümünü kaldır(koleksiyon) | Bu yöntem, kümede bulunan tüm öğeleri koleksiyondan çıkarmak için kullanılır. Bu yöntem, çağrı sonucunda bu küme değişirse true değerini döndürür. |
| keepAll(koleksiyon) | Bu yöntem, verilen koleksiyonda adı geçen kümedeki tüm öğeleri korumak için kullanılır. Bu yöntem, çağrı sonucunda bu küme değişirse true değerini döndürür. |
| boyut() | Bu yöntem kümenin boyutunu elde etmek için kullanılır. Bu, öğe sayısını belirten bir tamsayı değeri döndürür. |
| toArray() | Bu yöntem, Küme ile aynı öğelerden oluşan bir dizi oluşturmak için kullanılır. |
| toArray(T[] a) | Bu kümedeki tüm öğeleri içeren bir dizi döndürür; döndürülen dizinin çalışma zamanı türü, belirtilen dizininkidir. |
Java.util.Collection Arayüzünde Bildirilen Yöntemler
| Yöntem | Tanım |
|---|---|
| paralelAkış() | Kaynağı bu koleksiyon olan, muhtemelen paralel bir Akış döndürür. |
| RemoveIf(Yüklem super E>filtre) | Bu koleksiyonun verilen yüklemi karşılayan tüm öğelerini kaldırır. |
| aktarım() | Kaynağı bu koleksiyon olan sıralı bir Akış döndürür. |
| toArray?(IntFunction | Döndürülen diziyi tahsis etmek için sağlanan oluşturucu işlevini kullanarak bu koleksiyondaki tüm öğeleri içeren bir dizi döndürür. |
Java.lang.Iterable Arayüzünde Bildirilen Yöntemler
| Yöntem | Tanım |
|---|---|
| forEach(Tüketici super T>aksiyon) | Tüm öğeler işlenene veya eylem bir istisna atana kadar yinelenebilir öğenin her öğesi için verilen eylemi gerçekleştirir. |