Apache Commons Koleksiyonları - Hızlı Kılavuz

Commons Collections, Java Collections Framework'ü artırır. Koleksiyon işlemeyi kolaylaştırmak için çeşitli özellikler sunar. Birçok yeni arayüz, uygulama ve yardımcı program sağlar.

Commons Koleksiyonlarının ana özellikleri aşağıdaki gibidir -

  • Bag - Çanta arayüzleri, her nesnenin birden çok kopyasına sahip olan koleksiyonları basitleştirir.

  • BidiMap - BidiMap arayüzleri, değerleri kullanarak anahtarlar veya anahtarlar kullanarak değerleri aramak için kullanılabilen Çift Yönlü haritalar sağlar.

  • MapIterator - MapIterator arayüzü, haritalar üzerinde basit ve kolay yineleme sağlar.

  • Transforming Decorators - Dönüştürücü dekoratörler, bir koleksiyonun her nesnesini, koleksiyona eklendikçe ve eklendiğinde değiştirebilir.

  • Composite Collections - Birden fazla koleksiyonun aynı şekilde işlenmesi gereken kompozit koleksiyonlar kullanılır.

  • Ordered Map - Sıralı Haritalar, öğelerin eklendiği sırayı korur.

  • Ordered Set - Sıralı Kümeler, öğelerin eklendiği sırayı korur.

  • Reference map - Referans haritası, anahtar / değerlerin yakın kontrol altında çöp olarak toplanmasına izin verir.

  • Comparator implementations - Birçok Karşılaştırıcı uygulaması mevcuttur.

  • Iterator implementations - Birçok Yineleyici uygulaması mevcuttur.

  • Adapter Classes - Dizi ve numaralandırmaları koleksiyonlara dönüştürmek için bağdaştırıcı sınıfları mevcuttur.

  • Utilities- Birleşim, kesişim gibi koleksiyonların tipik küme teorisi özelliklerini test etmek veya oluşturmak için yardımcı programlar mevcuttur. Kapatmayı destekler.

Yerel Ortam Kurulumu

Hala ortamınızı Java programlama dili için kurmaya istekliyseniz, bu bölüm Java'yı makinenize nasıl indirip kuracağınız konusunda size yol gösterir. Ortamı kurmak için lütfen aşağıda belirtilen adımları izleyin.

Java SE, bağlantıdan ücretsiz olarak edinilebilir https://www.oracle.com/technetwork/java/archive-139210.html Yani, işletim sisteminize göre bir sürüm indirirsiniz.

Java'yı indirmek için talimatları izleyin ve makinenize Java'yı yüklemek için .exe dosyasını çalıştırın. Java'yı makinenize yükledikten sonra, ortam değişkenlerini doğru yükleme dizinlerini gösterecek şekilde ayarlamanız gerekir.

Windows 2000 / XP için Yolun Ayarlanması

Java'yı şuraya yüklediğinizi varsayıyoruz: c:\Program Files\java\jdk directory

  • "Bilgisayarım" ı sağ tıklayın ve "Özellikler" i seçin.

  • "Gelişmiş" sekmesinin altındaki "Ortam değişkenleri" düğmesini tıklayın.

  • Şimdi, 'Yol' değişkenini, Java yürütülebilir dosyasının yolunu da içerecek şekilde değiştirin. Örneğin, yol şu anda şu şekilde ayarlanmışsa'C:\WINDOWS\SYSTEM32', sonra okuma yolunu değiştir 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'.

Windows 95/98 / ME için Yolun Ayarlanması

Java'yı şuraya yüklediğinizi varsayıyoruz: c:\Program Files\java\jdk directory.

  • 'C: \ autoexec.bat' dosyasını düzenleyin ve sonuna aşağıdaki satırı ekleyin - 'SET PATH=%PATH%;C:\Program Files\java\jdk\bin'

Linux, UNIX, Solaris, FreeBSD için Yolun Ayarlanması

PATH ortam değişkeni, Java ikili dosyalarının kurulduğu yeri gösterecek şekilde ayarlanmalıdır. Bunu yapmakta sorun yaşıyorsanız, kabuk belgelerinize bakın.

Örnek, kabuğunuz olarak bash kullanırsanız, aşağıdaki satırı '.bashrc: export PATH=/path/to/java:$PATH'

Popüler Java Editörleri

Java programlarınızı yazmak için bir metin düzenleyiciye ihtiyacınız var. Piyasada birçok sofistike IDE mevcuttur. Ancak şimdilik aşağıdakilerden birini düşünebilirsiniz -

  • Notepad - Windows makinesinde, Not Defteri (Bu eğitim için önerilir), TextPad gibi herhangi bir basit metin düzenleyiciyi kullanabilirsiniz.

  • Netbeans - Açık kaynak kodlu ve ücretsiz bir Java IDE'dir, buradan indirilebilir https://netbeans.org.

  • Eclipse - Eclipse açık kaynak topluluğu tarafından geliştirilmiş bir Java IDE'dir ve şu adresten indirilebilir: https://www.eclipse.org/.

Ortak Koleksiyonlar Arşivini İndirin

Apache Common Collections jar dosyasının en son sürümünü commons-collections4-4.1-bin.zip adresinden indirin. Bu öğreticiyi yazarken, indirdikcommons-collections4-4.1-bin.zip ve içine kopyaladı C:\>Apache folder.

işletim sistemi Arşiv adı
pencereler commons-collections4-4.1-bin.zip
Linux commons-collections4-4.1-bin.tar.gz
Mac commons-collections4-4.1-bin.tar.gz

Apache Ortak Koleksiyonlar Ortamını Ayarlayın

Yı kur APACHE_HOMEortam değişkeni, makinenizde Apache jar'inin depolandığı temel dizin konumunu işaret eder. Varsayalım ki, commons-collections4-4.1-bin.zip'i çeşitli İşletim Sistemlerinde Apache klasörüne aşağıdaki gibi çıkardık -

işletim sistemi Arşiv adı
pencereler APACHE_HOME ortam değişkenini C: \ Apache olarak ayarlayın
Linux APACHE_HOME = / usr / local / Apache'yi dışa aktar
Mac dışa aktar APACHE_HOME = / Kitaplık / Apache

CLASSPATH Değişkenini Ayarla

Yı kur CLASSPATHOrtak Koleksiyonlar kavanoz konumunu işaret edecek ortam değişkeni. Commons-collections4-4.1-bin.zip dosyasını çeşitli İşletim Sistemlerinde Apache klasöründe aşağıdaki gibi sakladığınızı varsayarsak -

işletim sistemi Çıktı
pencereler CLASSPATH ortam değişkenini% CLASSPATH%;% APACHE_HOME% \ commons-collections4-4.1-bin.jar;.;
Linux dışa aktar CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collections4-4.1-bin.jar :.
Mac dışa aktar CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collections4-4.1-bin.jar :.

Destek çantalarına yeni arayüzler eklendi. Çanta, bir nesnenin koleksiyonda görünme sayısını sayan bir koleksiyonu tanımlar. Örneğin, bir Torba {a, a, b, c} içeriyorsa getCount ("a") 2, benzersizSet () ise benzersiz değerleri döndürür.

Arayüz Beyanı

Org.apache.commons.collections4.Bag <E> arayüzü beyanı aşağıdadır -

public interface Bag<E>
   extends Collection<E>

Yöntemler

Torba çıkarımı için yöntemler aşağıdaki gibidir -

Sr.No. Yöntem ve Açıklama
1

boolean add(E object)

(İhlal) Belirtilen nesnenin bir kopyasını Torbaya ekler.

2

boolean add(E object, int nCopies)

Belirtilen nesnenin nCopies kopyalarını Torbaya ekler.

3

boolean containsAll(Collection<?> coll)

(İhlal) Torba verilen koleksiyondaki tüm unsurları içeriyorsa, önemi dikkate alarak doğru olarak döner.

4

int getCount(Object object)

Şu anda çantada bulunan belirli bir nesnenin oluşum sayısını (temellik) döndürür.

5

Iterator<E> iterator()

Önem düzeyi nedeniyle kopyalar da dahil olmak üzere tüm üye kümesi üzerinde bir Yineleyici döndürür.

6

boolean remove(Object object)

(İhlal) Verilen nesnenin tüm oluşumlarını çantadan kaldırır.

7

boolean remove(Object object, int nCopies)

Belirtilen nesnenin nCopies kopyalarını Torbadan kaldırır.

8

boolean removeAll(Collection<?> coll)

(İhlal) Verilen koleksiyonda temsil edilen tüm öğeleri, asallığa saygı duyarak kaldırın.

9

boolean retainAll(Collection<?> coll)

(İhlal) Asallığa saygı göstererek, verilen koleksiyonda olmayan tüm çanta üyelerini çıkarın.

10

int size()

Tüm türlerde çantadaki toplam öğe sayısını döndürür.

11

Set<E> uniqueSet()

Çantada bir dizi benzersiz öğe döndürür.

Miras Alınan Yöntemler

Bu arayüz, yöntemleri aşağıdaki arayüzden devralır -

  • java.util.Collection

Çanta Arayüzü Örneği

BagTester.java'nın bir örneği aşağıdaki gibidir -

import org.apache.commons.collections4.Bag;
import org.apache.commons.collections4.bag.HashBag;
public class BagTester {
   public static void main(String[] args) {
      Bag<String> bag = new HashBag<>();
      //add "a" two times to the bag.
      bag.add("a" , 2);
      //add "b" one time to the bag.
      bag.add("b");
      //add "c" one time to the bag.
      bag.add("c");
      //add "d" three times to the bag.
      bag.add("d",3
      //get the count of "d" present in bag.
      System.out.println("d is present " + bag.getCount("d") + " times.");
      System.out.println("bag: " +bag);
      //get the set of unique values from the bag
      System.out.println("Unique Set: " +bag.uniqueSet());
      //remove 2 occurrences of "d" from the bag
      bag.remove("d",2);
      System.out.println("2 occurences of d removed from bag: " +bag);
      System.out.println("d is present " + bag.getCount("d") + " times.");
      System.out.println("bag: " +bag);
      System.out.println("Unique Set: " +bag.uniqueSet());
   }
}

Çıktı

Aşağıdaki çıktıyı göreceksiniz -

d is present 3 times.
bag: [2:a,1:b,1:c,3:d]
Unique Set: [a, b, c, d]
2 occurences of d removed from bag: [2:a,1:b,1:c,1:d]
d is present 1 times.
bag: [2:a,1:b,1:c,1:d]
Unique Set: [a, b, c, d]

Çift yönlü Haritayı desteklemek için yeni Arayüzler eklendi. Çift yönlü harita kullanılarak, değer kullanılarak bir anahtar aranabilir ve anahtar kullanılarak kolayca değer aranabilir.

Arayüz Beyanı

Aşağıdaki beyanı org.apache.commons.collections4.BidiMap<K,V> arayüz -

public interface BidiMap<K,V>
   extends IterableMap<K,V>

Yöntemler

BidiMap Arayüzü için yöntemler aşağıdaki gibidir -

Sr.No. Yöntem ve Açıklama
1

K getKey(Object value)

Şu anda belirtilen değere eşlenen anahtarı alır.

2

BidiMap<V,K> inverseBidiMap()

Anahtarların ve değerlerin ters çevrildiği bu haritanın bir görünümünü alır.

3

V put(K key, V value)

Anahtar / değer çiftini, önceki herhangi bir çifti değiştirerek haritaya koyar.

4

K removeValue(Object value)

Şu anda belirtilen değerle eşlenmiş anahtar / değer çiftini kaldırır (isteğe bağlı işlem).

5

Set<V> values()

Bu haritada bulunan değerlerin Set görünümünü döndürür.

Miras Alınan Yöntemler

Bu arayüz, yöntemleri aşağıdaki arayüzlerden miras alır -

  • org.apache.commons.collections4.Get

  • org.apache.commons.collections4.IterableGet

  • org.apache.commons.collections4.Put

  • java.util.Map

BidiMap Arayüzü Örneği

BidiMapTester.java'nın bir örneği aşağıdaki gibidir -

import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.bidimap.TreeBidiMap;
public class BidiMapTester {
   public static void main(String[] args) {
      BidiMap<String, String> bidi = new TreeBidiMap<>();
      bidi.put("One", "1");
      bidi.put("Two", "2");
      bidi.put("Three", "3");
      System.out.println(bidi.get("One"));
      System.out.println(bidi.getKey("1"));
      System.out.println("Original Map: " + bidi);
      bidi.removeValue("1");
      System.out.println("Modified Map: " + bidi);
      BidiMap<String, String> inversedMap = bidi.inverseBidiMap();
      System.out.println("Inversed Map: " + inversedMap);
   }
}

Çıktı

Kodu çalıştırdığınızda, aşağıdaki çıktıyı göreceksiniz -

1
One
Original Map: {One=1, Three=3, Two=2}
Modified Map: {Three=3, Two=2}
Inversed Map: {2=Two, 3=Three}

JDK Map arayüzünün, Yinelemenin EntrySet üzerinde veya KeySet nesneleri üzerinde yapılması oldukça zordur. MapIterator, Harita üzerinde basit yineleme sağlar. Aşağıdaki örnek aynı şeyi göstermektedir.

MapIterator Arayüzü Örneği

MapIteratorTester.java için bir örnek aşağıdaki gibidir -

import org.apache.commons.collections4.IterableMap;
import org.apache.commons.collections4.MapIterator;
import org.apache.commons.collections4.map.HashedMap;
public class MapIteratorTester {
   public static void main(String[] args) {
      IterableMap<String, String> map = new HashedMap<>();
      map.put("1", "One");
      map.put("2", "Two");
      map.put("3", "Three");
      map.put("4", "Four");
      map.put("5", "Five");
      MapIterator<String, String> iterator = map.mapIterator();
      while (iterator.hasNext()) {
         Object key = iterator.next();
         Object value = iterator.getValue();
         System.out.println("key: " + key);
         System.out.println("Value: " + value);
         iterator.setValue(value + "_");
      }
      System.out.println(map);
   }
}

Çıktı

Çıktı aşağıda belirtilmiştir -

key: 3
Value: Three
key: 5
Value: Five
key: 2
Value: Two
key: 4
Value: Four
key: 1
Value: One
{3=Three_, 5=Five_, 2=Two_, 4=Four_, 1=One_}

OrderedMap, öğelerin eklendiği sırayı korumak için haritalar için yeni bir arayüzdür. LinkedMap ve ListOrderedMap mevcut iki uygulamadır. Bu arayüzler, Haritanın yineleyicisini destekler ve bir Harita içinde ileriye veya geriye doğru her iki yönde yinelemeye izin verir. Aşağıdaki örnek aynı şeyi göstermektedir.

MapIterator Arayüzü Örneği

OrderedMapTester.java'nın bir örneği aşağıda verilmiştir -

import org.apache.commons.collections4.OrderedMap;
import org.apache.commons.collections4.map.LinkedMap;
public class OrderedMapTester {
   public static void main(String[] args) {
      OrderedMap<String, String> map = new LinkedMap<String, String>();
      map.put("One", "1");
      map.put("Two", "2");
      map.put("Three", "3");
      System.out.println(map.firstKey());
      System.out.println(map.nextKey("One"));
      System.out.println(map.nextKey("Two"));
   }
}

Çıktı

Sonuç aşağıdaki gibi olacaktır -

One
Two
Three

Apache Commons Collections kitaplığının CollectionUtils sınıfı, çok çeşitli kullanım durumlarını kapsayan yaygın işlemler için çeşitli yardımcı yöntemler sağlar. Standart kod yazmaktan kaçınmaya yardımcı olur. Bu kütüphane jdk 8'den önce çok kullanışlıdır çünkü benzer işlevler artık Java 8'in Stream API'sinde sağlanmaktadır.

Boş Olmayan Öğeleri Kontrol Et

Koleksiyona yalnızca boş olmayan değerlerin eklenmesini sağlamak için CollectionUtils'in addIgnoreNull () yöntemi kullanılabilir.

Beyanname

Aşağıdaki beyanı

org.apache.commons.collections4.CollectionUtils.addIgnoreNull() yöntem -

public static <T> boolean addIgnoreNull(Collection<T> collection, T object)

Parametreler

  • collection - Eklenecek koleksiyon boş olmamalıdır.

  • object - Eklenecek nesne, boşsa eklenmeyecektir.

Geri dönüş değeri

Koleksiyon değiştiyse doğrudur.

İstisna

  • NullPointerException - Koleksiyon boşsa.

Misal

Aşağıdaki örnek, org.apache.commons.collections4.CollectionUtils.addIgnoreNull()yöntem. Boş değer ve boş olmayan örnek bir değer eklemeye çalışıyoruz.

import java.util.LinkedList;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> list = new LinkedList<String>();
      CollectionUtils.addIgnoreNull(list, null);
      CollectionUtils.addIgnoreNull(list, "a");
      System.out.println(list);
      if(list.contains(null)) {
         System.out.println("Null value is present");
      } else {
         System.out.println("Null value is not present");
      }
   }
}

Çıktı

Çıktı aşağıda belirtilmiştir -

[a]
Null value is not present

Apache Commons Collections kitaplığının CollectionUtils sınıfı, çok çeşitli kullanım durumlarını kapsayan yaygın işlemler için çeşitli yardımcı yöntemler sağlar. Standart kod yazmaktan kaçınmaya yardımcı olur. Bu kütüphane jdk 8'den önce çok kullanışlıdır çünkü benzer işlevler artık Java 8'in Stream API'sinde sağlanmaktadır.

Sıralanmış iki listeyi birleştirme

CollectionUtils'in collate () yöntemi, önceden sıralanmış iki listeyi birleştirmek için kullanılabilir.

Beyanname

Aşağıdaki beyanı

org.apache.commons.collections4.CollectionUtils.collate() yöntem -

public static <O extends Comparable<? super O>> List<O>
   collate(Iterable<? extends O> a, Iterable<? extends O> b)

Parametreler

  • a - İlk koleksiyon boş olmamalıdır.

  • b - İkinci koleksiyon boş olmamalıdır.

Geri dönüş değeri

Koleksiyon a ve b'nin öğelerini içeren yeni bir sıralanmış Liste.

İstisna

  • NullPointerException - Koleksiyonlardan biri boşsa.

Misal

Aşağıdaki örnek, org.apache.commons.collections4.CollectionUtils.collate()yöntem. Sıralanmış iki listeyi birleştirip, birleştirilmiş ve sıralı listeyi yazdıracağız.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> sortedList1 = Arrays.asList("A","C","E");
      List<String> sortedList2 = Arrays.asList("B","D","F");
      List<String> mergedList = CollectionUtils.collate(sortedList1, sortedList2);
      System.out.println(mergedList);
   }
}

Çıktı

Çıktı aşağıdaki gibidir -

[A, B, C, D, E, F]

Apache Commons Collections kitaplığının CollectionUtils sınıfı, çok çeşitli kullanım durumlarını kapsayan yaygın işlemler için çeşitli yardımcı yöntemler sağlar. Standart kod yazmaktan kaçınmaya yardımcı olur. Bu kütüphane jdk 8'den önce çok kullanışlıdır çünkü benzer işlevler artık Java 8'in Stream API'sinde sağlanmaktadır.

Bir listeyi dönüştürmek

CollectionUtils'in collection () yöntemi, bir nesne türünün bir listesini farklı türdeki nesnelerin listesine dönüştürmek için kullanılabilir.

Beyanname

Aşağıdaki beyanı

org.apache.commons.collections4.CollectionUtils.collect() yöntem -

public static <I,O> Collection<O> collect(Iterable<I> inputCollection,
   Transformer<? super I,? extends O> transformer)

Parametreler

  • inputCollection - Girişin alınacağı koleksiyon boş olmayabilir.

  • Transformer - Kullanılacak transformatör boş olabilir.

Geri dönüş değeri

Dönüştürülen sonuç (yeni liste).

İstisna

  • NullPointerException - Giriş koleksiyonu boşsa.

Misal

Aşağıdaki örnek, org.apache.commons.collections4.CollectionUtils.collect()yöntem. String'deki tamsayı değerini ayrıştırarak bir dizi listesini tamsayı listesine dönüştüreceğiz.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Transformer;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> stringList = Arrays.asList("1","2","3");
      List<Integer> integerList = (List<Integer>) CollectionUtils.collect(
         stringList, new Transformer<String, Integer>() {
         @Override
         public Integer transform(String input) {
            return Integer.parseInt(input);
         }
      });
      System.out.println(integerList);
   }
}

Çıktı

Kodu kullandığınızda, aşağıdaki kodu alacaksınız -

[1, 2, 3]

Apache Commons Collections kitaplığının CollectionUtils sınıfı, çok çeşitli kullanım durumlarını kapsayan yaygın işlemler için çeşitli yardımcı yöntemler sağlar. Standart kod yazmaktan kaçınmaya yardımcı olur. Bu kütüphane jdk 8'den önce çok kullanışlıdır çünkü benzer işlevler artık Java 8'in Stream API'sinde sağlanmaktadır.

filter () yöntemi

CollectionUtils'in filter () yöntemi, geçirilen koşul tarafından sağlanan koşulu karşılamayan nesneleri kaldırmak için bir listeyi filtrelemek için kullanılabilir.

Beyanname

Aşağıdaki beyanı

org.apache.commons.collections4.CollectionUtils.filter() yöntem -

public static <T> boolean filter(Iterable<T> collection,
   Predicate<? super T> predicate)

Parametreler

  • collection - Girişin alınacağı koleksiyon boş olmayabilir.

  • predicate - Süzgeç olarak kullanılacak yüklem boş olabilir.

Geri dönüş değeri

Koleksiyon bu çağrı ile değiştirilirse true, aksi takdirde false.

Misal

Aşağıdaki örnek, org.apache.commons.collections4.CollectionUtils.filter()yöntem. Yalnızca çift sayıları elde etmek için bir tamsayı listesini filtreleyeceğiz.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<Integer> integerList = new ArrayList<Integer>(); 
      integerList.addAll(Arrays.asList(1,2,3,4,5,6,7,8));
      System.out.println("Original List: " + integerList);
      CollectionUtils.filter(integerList, new Predicate<Integer>() {
         @Override
         public boolean evaluate(Integer input) {
            if(input.intValue() % 2 == 0) {
               return true;
            }
            return false;
         }
      });
      System.out.println("Filtered List (Even numbers): " + integerList);
   }
}

Çıktı

Aşağıdaki sonucu verecektir -

Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Even numbers): [2, 4, 6, 8]

filterInverse () yöntemi

CollectionUtils'in filterInverse () yöntemi, geçirilen yüklem tarafından sağlanan koşulu sağlayan nesneleri kaldırmak için bir listeyi filtrelemek için kullanılabilir.

Beyanname

Aşağıdaki beyanı

org.apache.commons.collections4.CollectionUtils.filterInverse() yöntem -

public static <T> boolean filterInverse(
   Iterable<T> collection, Predicate<? super T> predicate)

Parametreler

  • collection - Girişin alınacağı koleksiyon boş olmayabilir.

  • predicate - Süzgeç olarak kullanılacak yüklem boş olabilir.

Geri dönüş değeri

Koleksiyon bu çağrı ile değiştirilirse true, aksi takdirde false.

Misal

Aşağıdaki örnek, org.apache.commons.collections4.CollectionUtils.filterInverse()yöntem. Yalnızca tek sayıları elde etmek için bir tamsayı listesini filtreleyeceğiz.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<Integer> integerList = new ArrayList<Integer>(); 
      integerList.addAll(Arrays.asList(1,2,3,4,5,6,7,8));
      System.out.println("Original List: " + integerList); 
      CollectionUtils.filterInverse(integerList, new Predicate<Integer>() {
         @Override
         public boolean evaluate(Integer input) {
            if(input.intValue() % 2 == 0) {
               return true;
            }
            return false;
         }
      });
      System.out.println("Filtered List (Odd numbers): " + integerList);
   }
}

Çıktı

Sonuç aşağıda belirtildiği gibidir -

Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Odd numbers): [1, 3, 5, 7]

Apache Commons Collections kitaplığının CollectionUtils sınıfı, çok çeşitli kullanım durumlarını kapsayan yaygın işlemler için çeşitli yardımcı yöntemler sağlar. Standart kod yazmaktan kaçınmaya yardımcı olur. Bu kütüphane jdk 8'den önce çok kullanışlıdır çünkü benzer işlevler artık Java 8'in Stream API'sinde sağlanmaktadır.

Boş olmayan liste kontrol ediliyor

CollectionUtils'in isNotEmpty () yöntemi, boş liste hakkında endişelenmeden bir listenin boş olup olmadığını kontrol etmek için kullanılabilir. Bu nedenle, listenin boyutu kontrol edilmeden önce her yerde boş kontrol yapılması gerekmez.

Beyanname

Aşağıdaki beyanı

org.apache.commons.collections4.CollectionUtils.isNotEmpty() yöntem -

public static boolean isNotEmpty(Collection<?> coll)

Parametreler

  • coll - Kontrol edilecek koleksiyon boş olabilir.

Geri dönüş değeri

Boş değilse ve boş değilse doğrudur.

Misal

Aşağıdaki örnek, org.apache.commons.collections4.CollectionUtils.isNotEmpty()yöntem. Listenin boş olup olmadığını kontrol edeceğiz.

import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> list = getList();
      System.out.println("Non-Empty List Check: " + checkNotEmpty1(list));
      System.out.println("Non-Empty List Check: " + checkNotEmpty1(list));
   }
   static List<String> getList() {
      return null;
   }
   static boolean checkNotEmpty1(List<String> list) {
      return !(list == null || list.isEmpty());
   }
   static boolean checkNotEmpty2(List<String> list) {
      return CollectionUtils.isNotEmpty(list);
   }
}

Çıktı

Çıktı aşağıda verilmiştir -

Non-Empty List Check: false
Non-Empty List Check: false

Boş liste kontrol ediliyor

CollectionUtils'in isEmpty () yöntemi, boş liste hakkında endişelenmeden bir listenin boş olup olmadığını kontrol etmek için kullanılabilir. Bu nedenle, listenin boyutu kontrol edilmeden önce her yerde boş kontrol yapılması gerekmez.

Beyanname

Aşağıdaki beyanı

org.apache.commons.collections4.CollectionUtils.isEmpty() yöntem -

public static boolean isEmpty(Collection<?> coll)

Parametreler

  • coll - Kontrol edilecek koleksiyon boş olabilir.

Geri dönüş değeri

Boş veya boş ise doğrudur.

Misal

Aşağıdaki örnek, org.apache.commons.collections4.CollectionUtils.isEmpty()yöntem. Listenin boş olup olmadığını kontrol edeceğiz.

import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> list = getList();
      System.out.println("Empty List Check: " + checkEmpty1(list));
      System.out.println("Empty List Check: " + checkEmpty1(list));
   }
   static List<String> getList() {
      return null;
   }
   static boolean checkEmpty1(List<String> list) {
      return (list == null || list.isEmpty());
   }
   static boolean checkEmpty2(List<String> list) {
      return CollectionUtils.isEmpty(list);
   }
}

Çıktı

Aşağıda verilen kodun çıktısıdır -

Empty List Check: true
Empty List Check: true

Apache Commons Collections kitaplığının CollectionUtils sınıfı, çok çeşitli kullanım durumlarını kapsayan yaygın işlemler için çeşitli yardımcı yöntemler sağlar. Standart kod yazmaktan kaçınmaya yardımcı olur. Bu kütüphane jdk 8'den önce çok kullanışlıdır çünkü benzer işlevler artık Java 8'in Stream API'sinde sağlanmaktadır.

Alt liste kontrol ediliyor

CollectionUtils'in isSubCollection () yöntemi, bir koleksiyonun verilen koleksiyonu içerip içermediğini kontrol etmek için kullanılabilir.

Beyanname

Aşağıdaki beyanı

org.apache.commons.collections4.CollectionUtils.isSubCollection() yöntem -

public static boolean isSubCollection(
   Collection<?> a, Collection<?> b)

Parametreler

  • a - İlk (alt) koleksiyon boş olmamalıdır.

  • b - İkinci (süper) koleksiyon boş olmamalıdır.

Geri dönüş değeri

Ancak ve ancak a, b'nin bir alt koleksiyonuysa doğrudur.

Misal

Aşağıdaki örnek, org.apache.commons.collections4.CollectionUtils.isSubCollection()yöntem. Bir listenin başka bir listenin parçası olup olmadığını kontrol edeceğiz.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      //checking inclusion
      List<String> list1 = Arrays.asList("A","A","A","C","B","B");
      List<String> list2 = Arrays.asList("A","A","B","B");
      System.out.println("List 1: " + list1);
      System.out.println("List 2: " + list2);
      System.out.println("Is List 2 contained in List 1: " + 
         CollectionUtils.isSubCollection(list2, list1));
   }
}

Çıktı

Aşağıdaki çıktıyı alacaksınız -

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
Is List 2 contained in List 1: true

Apache Commons Collections kitaplığının CollectionUtils sınıfı, çok çeşitli kullanım durumlarını kapsayan yaygın işlemler için çeşitli yardımcı yöntemler sağlar. Standart kod yazmaktan kaçınmaya yardımcı olur. Bu kütüphane jdk 8'den önce çok kullanışlıdır çünkü benzer işlevler artık Java 8'in Stream API'sinde sağlanmaktadır.

Kavşak kontrol ediliyor

CollectionUtils'in intersection () yöntemi, iki koleksiyon arasındaki ortak nesneleri (kesişim) elde etmek için kullanılabilir.

Beyanname

Aşağıdaki beyanı org.apache.commons.collections4.CollectionUtils.intersection() yöntem -

public static <O> Collection<O> intersection(Iterable<? extends O> a,
   Iterable<? extends O> b)

Parametreler

  • a - İlk (alt) koleksiyon boş olmamalıdır.

  • b - İkinci (süper) koleksiyon boş olmamalıdır.

Geri dönüş değeri

İki koleksiyonun kesişimi.

Misal

Aşağıdaki örnek, org.apache.commons.collections4.CollectionUtils.intersection()yöntem. İki listenin kesişimini alacağız.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      //checking inclusion
      List<String> list1 = Arrays.asList("A","A","A","C","B","B");
      List<String> list2 = Arrays.asList("A","A","B","B");
      System.out.println("List 1: " + list1);
      System.out.println("List 2: " + list2);
      System.out.println("Commons Objects of List 1 and List 2: "
         + CollectionUtils.intersection(list1, list2));
   }
}

Çıktı

Kodu çalıştırdığınızda, aşağıdaki çıktıyı göreceksiniz -

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
Commons Objects of List 1 and List 2: [A, A, B, B]

Apache Commons Collections kitaplığının CollectionUtils sınıfı, çok çeşitli kullanım durumlarını kapsayan yaygın işlemler için çeşitli yardımcı yöntemler sağlar. Standart kod yazmaktan kaçınmaya yardımcı olur. Bu kütüphane jdk 8'den önce çok kullanışlıdır çünkü benzer işlevler artık Java 8'in Stream API'sinde sağlanmaktadır.

Çıkarmayı Kontrol Etme

CollectionUtils'in subtract () yöntemi, bir koleksiyonun nesnelerini diğerinden çıkararak yeni koleksiyonu elde etmek için kullanılabilir.

Beyanname

Aşağıdaki beyanı org.apache.commons.collections4.CollectionUtils.subtract() yöntem -

public static <O> Collection<O> subtract(Iterable<? extends O> a,
   Iterable<? extends O> b)

Parametreler

  • a - Çıkarılacak koleksiyon boş olmamalıdır.

  • b - Çıkarılacak koleksiyon boş olmamalıdır.

Geri dönüş değeri

Sonuçlarla yeni bir koleksiyon.

Misal

Aşağıdaki örnek, org.apache.commons.collections4.CollectionUtils.subtract()yöntem. İki listenin çıkarılmasını alacağız.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      //checking inclusion
      List<String> list1 = Arrays.asList("A","A","A","C","B","B");
      List<String> list2 = Arrays.asList("A","A","B","B");
      System.out.println("List 1: " + list1);
      System.out.println("List 2: " + list2);
      System.out.println("List 1 - List 2: " + CollectionUtils.subtract(list1, list2));
   }
}

Çıktı

Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı görmelisiniz -

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
List 1 - List 2: [A, C]

Apache Commons Collections kitaplığının CollectionUtils sınıfı, çok çeşitli kullanım durumlarını kapsayan yaygın işlemler için çeşitli yardımcı yöntemler sağlar. Standart kod yazmaktan kaçınmaya yardımcı olur. Bu kütüphane jdk 8'den önce çok kullanışlıdır çünkü benzer işlevler artık Java 8'in Stream API'sinde sağlanmaktadır.

Birlik kontrol ediliyor

CollectionUtils'in union () yöntemi, iki koleksiyonun birleşimini elde etmek için kullanılabilir.

Beyanname

Aşağıdaki beyanı org.apache.commons.collections4.CollectionUtils.union() yöntem -

public static <O> Collection<O> union(
   Iterable<? extends O> a, Iterable<? extends O> b)

Parametreler

  • a - İlk koleksiyon boş olmamalıdır.

  • b - İkinci koleksiyon boş olmamalıdır.

Geri dönüş değeri

İki koleksiyonun birliği.

Misal

Aşağıdaki örnek, org.apache.commons.collections4.CollectionUtils.union()yöntem. İki listenin birleşimini alacağız.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      //checking inclusion
      List<String> list1 = Arrays.asList("A","A","A","C","B","B");
      List<String> list2 = Arrays.asList("A","A","B","B");
      System.out.println("List 1: " + list1);
      System.out.println("List 2: " + list2);
      System.out.println("Union of List 1 and List 2: "
         + CollectionUtils.union(list1, list2));
   }
}

Çıktı

Bu, aşağıdaki çıktıyı üretir -

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
Union of List 1 and List 2: [A, A, A, B, B, C]