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]