अपाचे कॉमन्स कलेक्शंस - क्विक गाइड

कॉमन्स कलेक्शंस जावा कलेक्शंस फ्रेमवर्क को बढ़ाते हैं। यह संग्रह को आसान बनाने के लिए कई सुविधाएँ प्रदान करता है। यह कई नए इंटरफेस, कार्यान्वयन और उपयोगिताओं प्रदान करता है।

कॉमन्स कलेक्शंस की मुख्य विशेषताएं इस प्रकार हैं -

  • Bag - बैग इंटरफेस संग्रह को सरल करता है, जिसमें प्रत्येक ऑब्जेक्ट की कई संख्याएँ होती हैं।

  • BidiMap - बिडिएपफ़ायर इंटरफेस द्वि-दिशात्मक नक्शे प्रदान करते हैं, जिनका उपयोग मानों या कुंजियों का उपयोग करके मानों को देखने के लिए किया जा सकता है।

  • MapIterator - MapIterator इंटरफ़ेस नक्शे पर सरल और आसान पुनरावृत्ति प्रदान करता है।

  • Transforming Decorators - ट्रांसफ़ॉर्मिंग डेकोरेटर्स कलेक्शन के हर ऑब्जेक्ट को तब जोड़ सकते हैं जब उसे कलेक्शन में जोड़ा जाता है।

  • Composite Collections - समग्र संग्रह का उपयोग किया जाता है, जहां समान रूप से एक से अधिक संग्रह की आवश्यकता होती है।

  • Ordered Map - ऑर्डर किए गए नक्शे उस क्रम को बनाए रखते हैं, जिसमें तत्वों को जोड़ा जाता है।

  • Ordered Set - ऑर्डर किए गए सेट ऑर्डर को बनाए रखते हैं, जिसमें तत्वों को जोड़ा जाता है।

  • Reference map - संदर्भ मानचित्र कुंजी / मूल्यों को करीबी नियंत्रण के तहत एकत्र किए जाने वाले कचरे की अनुमति देता है।

  • Comparator implementations - कई तुलनित्र कार्यान्वयन उपलब्ध हैं।

  • Iterator implementations - कई कई इलेक्टेटर कार्यान्वयन उपलब्ध हैं।

  • Adapter Classes - सरणी और गणना को संग्रह में बदलने के लिए एडॉप्टर कक्षाएं उपलब्ध हैं।

  • Utilities- उपयोगिताएँ संघ, चौराहे जैसे संग्रह के विशिष्ट सेट-थ्योरी गुणों का परीक्षण करने या बनाने के लिए उपलब्ध हैं। बंद का समर्थन करता है।

स्थानीय पर्यावरण सेटअप

यदि आप अभी भी जावा प्रोग्रामिंग लैंग्वेज के लिए अपना वातावरण सेट करने के लिए तैयार हैं, तो यह सेक्शन आपको गाइड करता है कि कैसे जावा को अपनी मशीन पर डाउनलोड करें और सेट करें। पर्यावरण स्थापित करने के लिए कृपया नीचे दिए गए चरणों का पालन करें।

जावा एसई लिंक से स्वतंत्र रूप से उपलब्ध है https://www.oracle.com/technetwork/java/archive-139210.html तो, आप अपने ऑपरेटिंग सिस्टम के आधार पर एक संस्करण डाउनलोड करते हैं।

जावा डाउनलोड करने और अपनी मशीन पर जावा स्थापित करने के लिए .exe चलाने के लिए निर्देशों का पालन करें। एक बार, आपने अपनी मशीन पर जावा स्थापित कर लिया है, तो आपको इंस्टॉलेशन निर्देशिकाओं को सही करने के लिए पर्यावरण चर सेट करना होगा।

Windows 2000 / XP के लिए पथ सेट करना

हम मान रहे हैं कि आपने जावा को स्थापित कर लिया है c:\Program Files\java\jdk directory

  • 'मेरा कंप्यूटर' पर राइट-क्लिक करें और 'गुण' चुनें।

  • 'उन्नत' टैब के अंतर्गत 'पर्यावरण चर' बटन पर क्लिक करें।

  • अब, 'Path' वैरिएबल को बदल दें ताकि इसमें जावा एक्जीक्यूटेबल का भी पथ शामिल हो। उदाहरण, यदि पथ वर्तमान में सेट है'C:\WINDOWS\SYSTEM32', तो पढ़ने के लिए अपना रास्ता बदलें 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'

Windows 95/98 / ME के ​​लिए पथ सेट करना

हम मान रहे हैं कि आपने जावा को स्थापित कर लिया है c:\Program Files\java\jdk directory

  • 'C: \ autoexec.bat' फ़ाइल संपादित करें और अंत में निम्नलिखित पंक्ति जोड़ें - 'SET PATH=%PATH%;C:\Program Files\java\jdk\bin'

लिनक्स, यूनिक्स, सोलारिस, फ्रीबीएसडी के लिए पथ की स्थापना

पर्यावरण चर PATH को इंगित करने के लिए सेट किया जाना चाहिए जहां, जावा बायनेरिज़ स्थापित किए गए हैं। यदि आपको ऐसा करने में परेशानी होती है, तो अपने शेल दस्तावेज़ देखें।

उदाहरण, यदि आप अपने शेल के रूप में बैश का उपयोग करते हैं, तो आप अपने 'के अंत में निम्नलिखित पंक्ति जोड़ेंगे'.bashrc: export PATH=/path/to/java:$PATH'

लोकप्रिय जावा संपादक

अपने जावा प्रोग्राम लिखने के लिए, आपको एक टेक्स्ट एडिटर चाहिए। बाजार में कई परिष्कृत आईडीई उपलब्ध हैं। लेकिन अभी के लिए, आप निम्नलिखित में से एक पर विचार कर सकते हैं -

  • Notepad - विंडोज मशीन पर, आप किसी भी साधारण पाठ संपादक जैसे नोटपैड (इस ट्यूटोरियल के लिए अनुशंसित), टेक्स्टपैड का उपयोग कर सकते हैं।

  • Netbeans - यह एक जावा आईडीई है जो ओपन-सोर्स और फ्री है, जिसे से डाउनलोड किया जा सकता है https://netbeans.org।

  • Eclipse - यह ग्रहण खुले स्रोत समुदाय द्वारा विकसित एक जावा आईडीई भी है और इससे डाउनलोड किया जा सकता है https://www.eclipse.org/।

डाउनलोड आम संग्रह पुरालेख

अपाचे कॉमन कलेक्शंस जार फ़ाइल का नवीनतम संस्करण commons-collections4-4.1-bin.zip से डाउनलोड करें। इस ट्यूटोरियल को लिखते समय, हमने डाउनलोड किया हैcommons-collections4-4.1-bin.zip और इसे कॉपी किया C:\>Apache folder

ओएस संग्रह का नाम
खिड़कियाँ commons-collections4-4.1-bin.zip
लिनक्स कॉमन्स-collections4-4.1-bin.tar.gz
मैक कॉमन्स-collections4-4.1-bin.tar.gz

अपाचे आम संग्रह पर्यावरण सेट करें

ठीक APACHE_HOMEपर्यावरण चर को आधार निर्देशिका स्थान पर इंगित करने के लिए जहां अपाचे जार आपकी मशीन पर संग्रहीत है। यह मानते हुए, हमने विभिन्न ऑपरेटिंग सिस्टमों पर Apache फ़ोल्डर में commons-collections4-4.1-bin.zip निकाला है:

ओएस संग्रह का नाम
खिड़कियाँ पर्यावरण चर APACHE_HOME को C: \ Apache पर सेट करें
लिनक्स निर्यात APACHE_HOME = / usr / स्थानीय / अपाचे
मैक निर्यात APACHE_HOME = / लाइब्रेरी / अपाचे

CLASSPATH चर सेट करें

ठीक CLASSPATHपर्यावरण चर आम संग्रह जार स्थान को इंगित करने के लिए। मान लें, आपने विभिन्न ऑपरेटिंग सिस्टम पर Apache फ़ोल्डर में commons-collections4-4.1-bin.zip संग्रहीत किया है:

ओएस उत्पादन
खिड़कियाँ पर्यावरण चर कक्षा को% CLASSPATH% पर सेट करें;% APACHE_HOME% \ commons-collection4-4.1-bin.jar ;;
लिनक्स निर्यात CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collection4-4.1-bin.jar:।
मैक निर्यात CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collection4-4.1-bin.jar:।

बैग का समर्थन करने के लिए नए इंटरफेस जोड़े जाते हैं। एक बैग एक संग्रह को परिभाषित करता है, जो संग्रह में किसी वस्तु के प्रकट होने की संख्या को गिनाता है। उदाहरण के लिए, यदि किसी थैले में {a, a, b, c} सम्‍मिलित है तो getCount ("a") 2 वापस आ जाएगा जबकि अनूठे () अद्वितीय मान लौटाता है।

इंटरफ़ेस घोषणा

निम्नलिखित org.apache.commons.collections4.Bag <E> इंटरफ़ेस के लिए घोषणा है -

public interface Bag<E>
   extends Collection<E>

तरीकों

बैग इंजेक्शन के लिए तरीके निम्न हैं -

अनु क्रमांक। विधि और विवरण
1

boolean add(E object)

(उल्लंघन) थैले में निर्दिष्ट वस्तु की एक प्रति जोड़ता है।

2

boolean add(E object, int nCopies)

बैग के लिए निर्दिष्ट वस्तु की प्रतियां nCopies जोड़ता है।

3

boolean containsAll(Collection<?> coll)

(उल्लंघन) यदि बैग दिए गए संग्रह में सभी तत्वों को शामिल करता है, तो कार्डिनैलिटी का सम्मान करते हुए यह सच है।

4

int getCount(Object object)

वर्तमान में बैग में दी गई वस्तु की घटनाओं (कार्डिनैलिटी) की संख्या लौटाता है।

5

Iterator<E> iterator()

कार्डिनलिटी के कारण प्रतियां सहित सदस्यों के पूरे सेट पर एक इटरेटर लौटाता है।

6

boolean remove(Object object)

(उल्लंघन) बैग से दी गई वस्तु की सभी घटनाओं को हटाता है।

7

boolean remove(Object object, int nCopies)

बैग से निर्दिष्ट ऑब्जेक्ट की nCopies प्रतियां निकालता है।

8

boolean removeAll(Collection<?> coll)

(उल्लंघन) दिए गए संग्रह में प्रतिनिधित्व किए गए सभी तत्वों को कार्डिनैलिटी का सम्मान करते हुए निकालें।

9

boolean retainAll(Collection<?> coll)

(उल्लंघन) बैग के किसी भी सदस्य को हटा दें जो दिए गए संग्रह में नहीं हैं, कार्डिनैलिटी का सम्मान करते हैं।

10

int size()

सभी प्रकार के बैग में वस्तुओं की कुल संख्या लौटाता है।

1 1

Set<E> uniqueSet()

बैग में अद्वितीय तत्वों का एक सेट लौटाता है।

तरीके निहित हैं

यह इंटरफ़ेस निम्नलिखित इंटरफ़ेस से विधियाँ प्राप्त करता है -

  • java.util.Collection

बैग इंटरफेस का उदाहरण

BagTester.java का एक उदाहरण इस प्रकार है -

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());
   }
}

उत्पादन

आप निम्न आउटपुट देखेंगे -

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]

द्विदिश मानचित्र का समर्थन करने के लिए नए इंटरफ़ेस जोड़े गए हैं। द्विदिश मानचित्र का उपयोग करते हुए, एक मान का उपयोग करके लुकअप किया जा सकता है और मूल्य आसानी से कुंजी का उपयोग करके लुकअप किया जा सकता है।

इंटरफ़ेस घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.collections4.BidiMap<K,V> इंटरफ़ेस -

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

तरीकों

BidiMap इंटरफ़ेस के लिए तरीके इस प्रकार हैं -

अनु क्रमांक। विधि और विवरण
1

K getKey(Object value)

उस कुंजी को प्राप्त करता है जिसे वर्तमान में निर्दिष्ट मान पर मैप किया गया है।

2

BidiMap<V,K> inverseBidiMap()

इस नक्शे का एक दृश्य बन जाता है जहाँ कुंजियाँ और मान उलट दिए जाते हैं।

3

V put(K key, V value)

किसी भी पिछले जोड़े की जगह, मानचित्र में कुंजी-मूल्य जोड़ी डालता है।

4

K removeValue(Object value)

वर्तमान में निर्दिष्ट मान (वैकल्पिक ऑपरेशन) के लिए मैप की गई कुंजी-मूल्य जोड़ी को निकालता है।

5

Set<V> values()

इस नक्शे में निहित मूल्यों का एक सेट दृश्य देता है।

तरीके निहित हैं

यह इंटरफ़ेस निम्नलिखित इंटरफ़ेस से विधियाँ प्राप्त करता है -

  • org.apache.commons.collections4.Get

  • org.apache.commons.collections4.IterableGet

  • org.apache.commons.collections4.Put

  • java.util.Map

बिडिप्पफ इंटरफ़ेस का उदाहरण

BidiMapTester.java का एक उदाहरण इस प्रकार है -

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);
   }
}

उत्पादन

जब आप कोड चलाते हैं, तो आपको निम्न आउटपुट दिखाई देंगे -

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

एंट्रीसेट या कीसेट ऑब्जेक्ट्स पर किए जाने वाले Iteration के रूप में JDK मैप इंटरफ़ेस को पुनरावृत्त करना बहुत कठिन है। MapIterator मानचित्र पर सरल पुनरावृत्ति प्रदान करता है। निम्नलिखित उदाहरण उसी को दर्शाता है।

MapIterator इंटरफ़ेस का उदाहरण

MapIteratorTester.java के लिए एक उदाहरण इस प्रकार है -

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);
   }
}

उत्पादन

उत्पादन नीचे बताया गया है -

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_}

ऑर्डरडेप मैप्स को बनाए रखने के लिए मैप्स के लिए एक नया इंटरफ़ेस है जिसमें तत्वों को जोड़ा जाता है। LinkedMap और ListOrderedMap दो उपलब्ध कार्यान्वयन हैं। यह इंटरफेस मैप के इटेटर का समर्थन करता है और मैप में आगे या पीछे दोनों दिशाओं में पुनरावृत्ति की अनुमति देता है। निम्नलिखित उदाहरण उसी को दर्शाता है।

MapIterator इंटरफ़ेस का उदाहरण

ऑर्डरडेपार्टस्टर.जवा का एक उदाहरण नीचे दिया गया है -

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"));
   }
}

उत्पादन

परिणाम इस प्रकार होगा -

One
Two
Three

अपाचे कॉमन्स कलेक्शन लाइब्रेरी का कलेक्शन यूटिल्स वर्ग उपयोग के मामलों की एक विस्तृत श्रृंखला को कवर करने वाले सामान्य संचालन के लिए विभिन्न उपयोगिता विधियां प्रदान करता है। यह बॉयलरप्लेट कोड लिखने से बचने में मदद करता है। यह लाइब्रेरी jdk 8 से पहले बहुत उपयोगी है क्योंकि जावा 8 के स्ट्रीम एपीआई में अब इसी तरह की कार्यक्षमता प्रदान की जाती है।

नहीं अशक्त तत्वों के लिए जाँच करें

addIgnoreNull () CollectionUtils की विधि का उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि केवल गैर-शून्य मान संग्रह में जोड़े जा रहे हैं।

घोषणा

निम्नलिखित के लिए घोषणा है

org.apache.commons.collections4.CollectionUtils.addIgnoreNull() विधि -

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

मापदंडों

  • collection - को जोड़ने के लिए संग्रह, शून्य नहीं होना चाहिए।

  • object - जोड़ने के लिए वस्तु, यदि यह शून्य नहीं जोड़ा जाएगा।

प्रतिलाभ की मात्रा

सच है अगर संग्रह बदल गया।

अपवाद

  • NullPointerException - अगर संग्रह शून्य है।

उदाहरण

निम्नलिखित उदाहरण के उपयोग को दर्शाता है org.apache.commons.collections4.CollectionUtils.addIgnoreNull()तरीका। हम एक शून्य मान और एक नमूना गैर-शून्य मान जोड़ने का प्रयास कर रहे हैं।

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");
      }
   }
}

उत्पादन

उत्पादन का उल्लेख नीचे दिया गया है -

[a]
Null value is not present

अपाचे कॉमन्स कलेक्शन लाइब्रेरी का कलेक्शन यूटिल्स वर्ग उपयोग के मामलों की एक विस्तृत श्रृंखला को कवर करने वाले सामान्य संचालन के लिए विभिन्न उपयोगिता विधियां प्रदान करता है। यह बॉयलरप्लेट कोड लिखने से बचने में मदद करता है। यह लाइब्रेरी jdk 8 से पहले बहुत उपयोगी है क्योंकि जावा 8 के स्ट्रीम एपीआई में अब इसी तरह की कार्यक्षमता प्रदान की जाती है।

दो सॉर्ट की गई सूची को मर्ज करना

दो पहले से ही सॉर्ट किए गए सूचियों को मर्ज करने के लिए CollectionUtils की collate () विधि का उपयोग किया जा सकता है।

घोषणा

निम्नलिखित के लिए घोषणा है

org.apache.commons.collections4.CollectionUtils.collate() विधि -

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

मापदंडों

  • a - पहला संग्रह, अशक्त नहीं होना चाहिए।

  • b - दूसरा संग्रह, अशक्त नहीं होना चाहिए।

प्रतिलाभ की मात्रा

एक नई सॉर्ट की गई सूची, जिसमें संग्रह ए और बी के तत्व शामिल हैं।

अपवाद

  • NullPointerException - यदि या तो संग्रह शून्य है।

उदाहरण

निम्नलिखित उदाहरण के उपयोग को दर्शाता है org.apache.commons.collections4.CollectionUtils.collate()तरीका। हम दो क्रमबद्ध सूचियों को मर्ज करेंगे और फिर विलय और क्रमबद्ध सूची को प्रिंट करेंगे।

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);
   }
}

उत्पादन

आउटपुट इस प्रकार है -

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

अपाचे कॉमन्स कलेक्शन लाइब्रेरी का कलेक्शन यूटिल्स वर्ग उपयोग के मामलों की एक विस्तृत श्रृंखला को कवर करने वाले सामान्य संचालन के लिए विभिन्न उपयोगिता विधियां प्रदान करता है। यह बॉयलरप्लेट कोड लिखने से बचने में मदद करता है। यह लाइब्रेरी jdk 8 से पहले बहुत उपयोगी है क्योंकि जावा 8 के स्ट्रीम एपीआई में अब इसी तरह की कार्यक्षमता प्रदान की जाती है।

सूची बदलना

संग्रह () संग्रह विधि का उपयोग विभिन्न प्रकार की वस्तुओं की सूची में एक प्रकार की वस्तुओं की सूची को बदलने के लिए किया जा सकता है।

घोषणा

निम्नलिखित के लिए घोषणा है

org.apache.commons.collections4.CollectionUtils.collect() विधि -

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

मापदंडों

  • inputCollection - से प्राप्त करने के लिए संग्रह, शून्य नहीं हो सकता है।

  • Transformer - उपयोग करने के लिए ट्रांसफार्मर, शून्य हो सकता है।

प्रतिलाभ की मात्रा

रूपांतरित परिणाम (नई सूची)।

अपवाद

  • NullPointerException - यदि इनपुट संग्रह शून्य है।

उदाहरण

निम्नलिखित उदाहरण के उपयोग को दर्शाता है org.apache.commons.collections4.CollectionUtils.collect()तरीका। हम स्ट्रिंग की सूची को स्ट्रिंग से पूर्णांक मान को पार्स करके पूर्णांक की सूची में बदल देंगे।

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);
   }
}

उत्पादन

जब आप कोड का उपयोग करते हैं, तो आपको निम्नलिखित कोड मिलेगा -

[1, 2, 3]

अपाचे कॉमन्स कलेक्शन लाइब्रेरी का कलेक्शन यूटिल्स वर्ग उपयोग के मामलों की एक विस्तृत श्रृंखला को कवर करने वाले सामान्य संचालन के लिए विभिन्न उपयोगिता विधियां प्रदान करता है। यह बॉयलरप्लेट कोड लिखने से बचने में मदद करता है। यह लाइब्रेरी jdk 8 से पहले बहुत उपयोगी है क्योंकि जावा 8 के स्ट्रीम एपीआई में अब इसी तरह की कार्यक्षमता प्रदान की जाती है।

फ़िल्टर () विधि

संग्रह (फ़िल्टर) संग्रह विधि का उपयोग उन वस्तुओं को हटाने के लिए एक सूची को फ़िल्टर करने के लिए किया जा सकता है जो विधेय द्वारा प्रदान की गई शर्त को पूरा नहीं करती हैं।

घोषणा

निम्नलिखित के लिए घोषणा है

org.apache.commons.collections4.CollectionUtils.filter() विधि -

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

मापदंडों

  • collection - से प्राप्त करने के लिए संग्रह, शून्य नहीं हो सकता है।

  • predicate - एक फिल्टर के रूप में उपयोग करने के लिए विधेय, शून्य हो सकता है।

प्रतिलाभ की मात्रा

सही है अगर संग्रह को इस कॉल द्वारा संशोधित किया गया है, तो गलत है।

उदाहरण

निम्नलिखित उदाहरण के उपयोग को दर्शाता है org.apache.commons.collections4.CollectionUtils.filter()तरीका। हम केवल संख्याएँ प्राप्त करने के लिए पूर्णांक की एक सूची फ़िल्टर करेंगे।

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);
   }
}

उत्पादन

यह निम्नलिखित परिणाम का उत्पादन करेगा -

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

फ़िल्टरइन्वर्स () विधि

FilterInverse () CollectionUtils की विधि का उपयोग ऑब्जेक्ट्स को हटाने के लिए एक सूची को फ़िल्टर करने के लिए किया जा सकता है, जो कि विधेय द्वारा प्रदान की गई शर्त को पूरा करता है।

घोषणा

निम्नलिखित के लिए घोषणा है

org.apache.commons.collections4.CollectionUtils.filterInverse() विधि -

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

मापदंडों

  • collection - से प्राप्त करने के लिए संग्रह, शून्य नहीं हो सकता है।

  • predicate - एक फिल्टर के रूप में उपयोग करने के लिए विधेय, शून्य हो सकता है।

प्रतिलाभ की मात्रा

सही है अगर संग्रह को इस कॉल द्वारा संशोधित किया गया है, तो गलत है।

उदाहरण

निम्नलिखित उदाहरण के उपयोग को दर्शाता है org.apache.commons.collections4.CollectionUtils.filterInverse()तरीका। हम केवल विषम संख्या प्राप्त करने के लिए पूर्णांक की एक सूची फ़िल्टर करेंगे।

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);
   }
}

उत्पादन

परिणाम निम्नानुसार है -

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

अपाचे कॉमन्स कलेक्शन लाइब्रेरी का कलेक्शन यूटिल्स वर्ग उपयोग के मामलों की एक विस्तृत श्रृंखला को कवर करने वाले सामान्य संचालन के लिए विभिन्न उपयोगिता विधियां प्रदान करता है। यह बॉयलरप्लेट कोड लिखने से बचने में मदद करता है। यह लाइब्रेरी jdk 8 से पहले बहुत उपयोगी है क्योंकि जावा 8 के स्ट्रीम एपीआई में अब इसी तरह की कार्यक्षमता प्रदान की जाती है।

गैर-रिक्त सूची की जाँच करना

isNotEmpty () CollectionUtils की विधि का उपयोग यह जांचने के लिए किया जा सकता है कि कोई सूची रिक्त सूची के बारे में चिंता किए बिना खाली नहीं है। इसलिए सूची के आकार की जांच करने से पहले सभी जगह अशक्त जांच की आवश्यकता नहीं है।

घोषणा

निम्नलिखित के लिए घोषणा है

org.apache.commons.collections4.CollectionUtils.isNotEmpty() विधि -

public static boolean isNotEmpty(Collection<?> coll)

मापदंडों

  • coll - जाँच करने के लिए संग्रह, शून्य हो सकता है।

प्रतिलाभ की मात्रा

सच है अगर गैर-अशक्त और गैर-खाली।

उदाहरण

निम्नलिखित उदाहरण के उपयोग को दर्शाता है org.apache.commons.collections4.CollectionUtils.isNotEmpty()तरीका। हम जांच करेंगे कि कोई सूची खाली है या नहीं।

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);
   }
}

उत्पादन

उत्पादन नीचे दिया गया है -

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

खाली सूची की जाँच की जा रही है

IsEmpty () CollectionUtils की विधि का उपयोग यह जांचने के लिए किया जा सकता है कि कोई सूची रिक्त सूची के बारे में चिंता किए बिना खाली है। इसलिए सूची के आकार की जांच करने से पहले सभी जगह अशक्त जांच की आवश्यकता नहीं है।

घोषणा

निम्नलिखित के लिए घोषणा है

org.apache.commons.collections4.CollectionUtils.isEmpty() विधि -

public static boolean isEmpty(Collection<?> coll)

मापदंडों

  • coll - जाँच करने के लिए संग्रह, शून्य हो सकता है।

प्रतिलाभ की मात्रा

सच है अगर खाली या अशक्त।

उदाहरण

निम्नलिखित उदाहरण के उपयोग को दर्शाता है org.apache.commons.collections4.CollectionUtils.isEmpty()तरीका। हम जांच करेंगे कि कोई सूची खाली है या नहीं।

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);
   }
}

उत्पादन

नीचे दिए गए कोड का उत्पादन है -

Empty List Check: true
Empty List Check: true

अपाचे कॉमन्स कलेक्शन लाइब्रेरी का कलेक्शन यूटिल्स वर्ग उपयोग के मामलों की एक विस्तृत श्रृंखला को कवर करने वाले सामान्य संचालन के लिए विभिन्न उपयोगिता विधियां प्रदान करता है। यह बॉयलरप्लेट कोड लिखने से बचने में मदद करता है। यह लाइब्रेरी jdk 8 से पहले बहुत उपयोगी है क्योंकि जावा 8 के स्ट्रीम एपीआई में अब इसी तरह की कार्यक्षमता प्रदान की जाती है।

सबलिस्ट चेक कर रहा है

संग्रह के संग्रह मेंSubCollection () विधि का उपयोग यह जांचने के लिए किया जा सकता है कि किसी संग्रह में दिए गए संग्रह हैं या नहीं।

घोषणा

निम्नलिखित के लिए घोषणा है

org.apache.commons.collections4.CollectionUtils.isSubCollection() विधि -

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

मापदंडों

  • a - पहला (उप) संग्रह, शून्य नहीं होना चाहिए।

  • b - दूसरा (सुपर) संग्रह, शून्य नहीं होना चाहिए।

प्रतिलाभ की मात्रा

सच है अगर और केवल अगर एक बी का उप-संग्रह है।

उदाहरण

निम्नलिखित उदाहरण के उपयोग को दर्शाता है org.apache.commons.collections4.CollectionUtils.isSubCollection()तरीका। हम जांच करेंगे कि कोई सूची किसी अन्य सूची का हिस्सा है या नहीं।

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));
   }
}

उत्पादन

आपको निम्न आउटपुट प्राप्त होंगे -

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

अपाचे कॉमन्स कलेक्शन लाइब्रेरी का कलेक्शन यूटिल्स वर्ग उपयोग के मामलों की एक विस्तृत श्रृंखला को कवर करने वाले सामान्य संचालन के लिए विभिन्न उपयोगिता विधियां प्रदान करता है। यह बॉयलरप्लेट कोड लिखने से बचने में मदद करता है। यह लाइब्रेरी jdk 8 से पहले बहुत उपयोगी है क्योंकि जावा 8 के स्ट्रीम एपीआई में अब इसी तरह की कार्यक्षमता प्रदान की जाती है।

चौराहा चेक करना

दो संग्रह (चौराहे) के बीच आम वस्तुओं को प्राप्त करने के लिए संग्रहणीय (चौराहे) विधि का उपयोग किया जा सकता है।

घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.collections4.CollectionUtils.intersection() विधि -

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

मापदंडों

  • a - पहला (उप) संग्रह, शून्य नहीं होना चाहिए।

  • b - दूसरा (सुपर) संग्रह, शून्य नहीं होना चाहिए।

प्रतिलाभ की मात्रा

दो संग्रह का चौराहा।

उदाहरण

निम्नलिखित उदाहरण के उपयोग को दर्शाता है org.apache.commons.collections4.CollectionUtils.intersection()तरीका। हम दो सूचियों का प्रतिच्छेदन प्राप्त करेंगे।

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));
   }
}

उत्पादन

जब आप कोड चलाते हैं, तो आपको निम्न आउटपुट दिखाई देंगे -

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]

अपाचे कॉमन्स कलेक्शन लाइब्रेरी का कलेक्शन यूटिल्स वर्ग उपयोग के मामलों की एक विस्तृत श्रृंखला को कवर करने वाले सामान्य संचालन के लिए विभिन्न उपयोगिता विधियां प्रदान करता है। यह बॉयलरप्लेट कोड लिखने से बचने में मदद करता है। यह लाइब्रेरी jdk 8 से पहले बहुत उपयोगी है क्योंकि जावा 8 के स्ट्रीम एपीआई में अब इसी तरह की कार्यक्षमता प्रदान की जाती है।

घटाव की जाँच

सबट्रेक्ट () संग्रह विधि का उपयोग एक संग्रह की वस्तुओं को दूसरे से घटाकर नया संग्रह प्राप्त करने के लिए किया जा सकता है।

घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.collections4.CollectionUtils.subtract() विधि -

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

मापदंडों

  • a - से घटाना करने के लिए संग्रह, शून्य नहीं होना चाहिए।

  • b - घटाना करने के लिए संग्रह, शून्य नहीं होना चाहिए।

प्रतिलाभ की मात्रा

परिणामों के साथ एक नया संग्रह।

उदाहरण

निम्नलिखित उदाहरण के उपयोग को दर्शाता है org.apache.commons.collections4.CollectionUtils.subtract()तरीका। हम दो सूचियों का घटाव प्राप्त करेंगे।

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));
   }
}

उत्पादन

जब आप उपरोक्त कोड निष्पादित करते हैं, तो आपको निम्नलिखित आउटपुट देखना चाहिए -

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

अपाचे कॉमन्स कलेक्शन लाइब्रेरी का कलेक्शन यूटिल्स वर्ग उपयोग के मामलों की एक विस्तृत श्रृंखला को कवर करने वाले सामान्य संचालन के लिए विभिन्न उपयोगिता विधियां प्रदान करता है। यह बॉयलरप्लेट कोड लिखने से बचने में मदद करता है। यह लाइब्रेरी jdk 8 से पहले बहुत उपयोगी है क्योंकि जावा 8 के स्ट्रीम एपीआई में अब इसी तरह की कार्यक्षमता प्रदान की जाती है।

संघ की जाँच

दो संग्रहों के मिलन के लिए CollectionUtils के संघ () विधि का उपयोग किया जा सकता है।

घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.collections4.CollectionUtils.union() विधि -

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

मापदंडों

  • a - पहला संग्रह, अशक्त नहीं होना चाहिए।

  • b - दूसरा संग्रह, अशक्त नहीं होना चाहिए।

प्रतिलाभ की मात्रा

दो संग्रहों का मिलन।

उदाहरण

निम्नलिखित उदाहरण के उपयोग को दर्शाता है org.apache.commons.collections4.CollectionUtils.union()तरीका। हम दो सूचियों का मिलन करेंगे।

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));
   }
}

उत्पादन

यह निम्नलिखित उत्पादन का उत्पादन करता है -

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]