खोज…


टिप्पणियों

अमरूद, अपाचे, ग्रहण से जावा संग्रह के बारे में यह विषय: मल्टीसेट, बैग, मल्टीमैप, इस परिवाद से बर्तन काम करता है।

Apache HashBag, Guava HashMultiset और ग्रहण हैशबैग

एक थैला / अल्टीसैट संग्रह की प्रत्येक वस्तु को घटनाओं की गणना के साथ संग्रहीत करता है। इंटरफ़ेस पर अतिरिक्त विधियाँ एक वस्तु की कई प्रतियों को एक साथ जोड़ने या निकालने की अनुमति देती हैं। JDK एनालॉग हैशप <टी, इंटेगर> है, जब मान इस कुंजी की प्रतियों की गणना करते हैं।

प्रकार अमरूद अपाचे कॉमन्स कलेक्शंस जीएस कलेक्शन JDK
आदेश परिभाषित नहीं है HashMultiset HashBag HashBag हैश मैप
क्रमबद्ध TreeMultiset TreeBag TreeBag ट्री-मैप
निवेशन-आदेश LinkedHashMultiset - - LinkedHashMap
समवर्ती संस्करण ConcurrentHashMultiset SynchronizedBag SynchronizedBag Collections.synchronizedMap(HashMap<String, Integer>)
समवर्ती और क्रमबद्ध - SynchronizedSortedBag SynchronizedSortedBag Collections.synchronizedSortedMap(TreeMap<String,Integer>)
अचल संग्रह ImmutableMultiset UnmodifiableBag UnmodifiableBag Collections.unmodifiableMap(HashMap<String, Integer)]
अपरिवर्तनीय और क्रमबद्ध ImmutableSortedMultiset UnmodifiableSortedBag UnmodifiableSortedBag Collections.unmodifiableSortedMap(TreeMap<String, Integer>

उदाहरण :

1. Apache से सिंक्रोनाइज़्डस्ट्रैग का उपयोग करना :

    // Parse text to separate words
    String INPUT_TEXT = "Hello World! Hello All! Hi World!";
    // Create Multiset
    Bag bag = SynchronizedSortedBag.synchronizedBag(new TreeBag(Arrays.asList(INPUT_TEXT.split(" "))));

    // Print count words
    System.out.println(bag); // print [1:All!,2:Hello,1:Hi,2:World!]- in natural (alphabet) order
    // Print all unique words
    System.out.println(bag.uniqueSet());    // print [All!, Hello, Hi, World!]- in natural (alphabet) order


    // Print count occurrences of words
    System.out.println("Hello = " + bag.getCount("Hello"));    // print 2
    System.out.println("World = " + bag.getCount("World!"));    // print 2
    System.out.println("All = " + bag.getCount("All!"));    // print 1
    System.out.println("Hi = " + bag.getCount("Hi"));    // print 1
    System.out.println("Empty = " + bag.getCount("Empty"));    // print 0

    // Print count all words
    System.out.println(bag.size());    //print 6

    // Print count unique words
    System.out.println(bag.uniqueSet().size());    //print 4

2. एक्लिप्स (GC) से ट्रीबैग का उपयोग करना :

    // Parse text to separate words
    String INPUT_TEXT = "Hello World! Hello All! Hi World!";
    // Create Multiset
    MutableSortedBag<String> bag =  TreeBag.newBag(Arrays.asList(INPUT_TEXT.split(" ")));

    // Print count words
    System.out.println(bag); // print [All!, Hello, Hello, Hi, World!, World!]- in natural order
    // Print all unique words
    System.out.println(bag.toSortedSet());    // print [All!, Hello, Hi, World!]- in natural order

    // Print count occurrences of words
    System.out.println("Hello = " + bag.occurrencesOf("Hello"));    // print 2
    System.out.println("World = " + bag.occurrencesOf("World!"));    // print 2
    System.out.println("All = " + bag.occurrencesOf("All!"));    // print 1
    System.out.println("Hi = " + bag.occurrencesOf("Hi"));    // print 1
    System.out.println("Empty = " + bag.occurrencesOf("Empty"));    // print 0

    // Print count all words
    System.out.println(bag.size());    //print 6

    // Print count unique words
    System.out.println(bag.toSet().size());    //print 4

3. अमरूद से LinkedHashMultiset का उपयोग करना :

    // Parse text to separate words
    String INPUT_TEXT = "Hello World! Hello All! Hi World!";
    // Create Multiset
    Multiset<String> multiset = LinkedHashMultiset.create(Arrays.asList(INPUT_TEXT.split(" ")));

    // Print count words
    System.out.println(multiset); // print [Hello x 2, World! x 2, All!, Hi]- in predictable iteration order
    // Print all unique words
    System.out.println(multiset.elementSet());    // print [Hello, World!, All!, Hi] - in predictable iteration order

    // Print count occurrences of words
    System.out.println("Hello = " + multiset.count("Hello"));    // print 2
    System.out.println("World = " + multiset.count("World!"));    // print 2
    System.out.println("All = " + multiset.count("All!"));    // print 1
    System.out.println("Hi = " + multiset.count("Hi"));    // print 1
    System.out.println("Empty = " + multiset.count("Empty"));    // print 0

    // Print count all words
    System.out.println(multiset.size());    //print 6

    // Print count unique words
    System.out.println(multiset.elementSet().size());    //print 4

और ज्यादा उदाहरण:

I. अपाचे संग्रह:

  1. हैशबैग - ऑर्डर परिभाषित नहीं
  2. सिंक्रोनाइज़्डबग - समवर्ती और क्रम परिभाषित नहीं है
  3. सिंक्रोनाइज़्डस्ट्रैब - - समवर्ती और क्रमबद्ध क्रम
  4. ट्रीबाग - क्रमबद्ध क्रम

द्वितीय। जीएस / ग्रहण संग्रह

  1. MutableBag - आदेश परिभाषित नहीं
  2. MutableSortedBag - क्रमबद्ध क्रम

तृतीय। अमरूद

  1. HashMultiset - आदेश परिभाषित नहीं
  2. ट्रीमुलिसेट - क्रमबद्ध क्रम
  3. लिंक्डहाशमुल्टिसेट - प्रविष्टि क्रम
  4. समवर्ती HashMultiset - समवर्ती और क्रम परिभाषित नहीं है

अमरूद, अपाचे और ग्रहण संग्रह में मल्टीमैप

यह मल्टीपैप डुप्लिकेट की-वैल्यू पेयर को अनुमति देता है। JDK एनालॉग्स HashMap <K, सूची>, HashMap <K, सेट> और इतने पर हैं।

की का आदेश मान का क्रम डुप्लिकेट एनालॉग कुंजी अनुरूप मूल्य अमरूद अमरीका की एक मूल जनजाति ग्रहण (जीएस) संग्रह JDK
परिभाषित नहीं निवेशन-आदेश हाँ हैश मैप सारणी सूची ArrayListMultimap MultiValueMap FastListMultimap HashMap<K, ArrayList<V>>
परिभाषित नहीं परिभाषित नहीं नहीं हैश मैप HashSet HashMultimap MultiValueMap. multiValueMap( new HashMap<K, Set>(), HashSet.class); UnifiedSetMultimap HashMap<K, HashSet<V>>
परिभाषित नहीं क्रमबद्ध नहीं हैश मैप TreeSet Multimaps. newMultimap( HashMap, Supplier <TreeSet>) MultiValueMap.multiValueMap( new HashMap<K, Set>(), TreeSet.class) TreeSortedSet- Multimap HashMap<K, TreeSet<V>>
निवेशन-आदेश निवेशन-आदेश हाँ LinkedHashMap सारणी सूची LinkedListMultimap MultiValueMap। multiValueMap (नया लिंक्डहाशप <K, सूची> (), ArrayList.class); लिंक्डहाशप <<केरे, अरेलिस्ट>
निवेशन-आदेश निवेशन-आदेश नहीं LinkedHashMap LinkedHashSet LinkedHashMultimap MultiValueMap. multiValueMap(new LinkedHashMap<K, Set>(), LinkedHashSet.class) LinkedHashMap<K, LinkedHashSet<V>>
क्रमबद्ध क्रमबद्ध नहीं ट्री-मैप TreeSet TreeMultimap MultiValueMap. multiValueMap( new TreeMap<K, Set>(),TreeSet.class) TreeMap<K, TreeSet<V>>
मल्टीमैप का उपयोग करने वाले उदाहरण

कार्य : पार्स "हैलो वर्ल्ड! नमस्ते ऑल! हाय वर्ल्ड!" शब्दों को अलग-अलग करने के लिए और मल्टीपर्पस (उदाहरण के लिए, हैलो = [0, 2], दुनिया! = [1, 5] और इसी तरह का उपयोग करके हर शब्द के सभी इंडेक्स को प्रिंट करें।

1. Apache से MultiValueMap

    String INPUT_TEXT = "Hello World! Hello All! Hi World!";
    // Parse text to words and index
    List<String> words = Arrays.asList(INPUT_TEXT.split(" "));
    // Create Multimap
    MultiMap<String, Integer> multiMap = new MultiValueMap<String, Integer>();


    // Fill Multimap
    int i = 0;
    for(String word: words) {
        multiMap.put(word, i);
        i++;
    }

    // Print all words
    System.out.println(multiMap); // print {Hi=[4], Hello=[0, 2], World!=[1, 5], All!=[3]} - in random orders
    // Print all unique words
    System.out.println(multiMap.keySet());    // print [Hi, Hello, World!, All!] - in random orders

    // Print all indexes
    System.out.println("Hello = " + multiMap.get("Hello"));    // print [0, 2]
    System.out.println("World = " + multiMap.get("World!"));    // print [1, 5]
    System.out.println("All = " + multiMap.get("All!"));    // print [3]
    System.out.println("Hi = " + multiMap.get("Hi"));    // print [4]
    System.out.println("Empty = " + multiMap.get("Empty"));    // print null

    // Print count unique words
    System.out.println(multiMap.keySet().size());    //print 4

2. GS / ग्रहण संग्रह से HashBiMap

    String[] englishWords = {"one", "two", "three","ball","snow"};
    String[] russianWords = {"jeden", "dwa", "trzy", "kula", "snieg"};

    // Create Multiset
    MutableBiMap<String, String> biMap = new HashBiMap(englishWords.length);
    // Create English-Polish dictionary
    int i = 0;
    for(String englishWord: englishWords) {
        biMap.put(englishWord, russianWords[i]);
        i++;
    }

    // Print count words
    System.out.println(biMap); // print {two=dwa, ball=kula, one=jeden, snow=snieg, three=trzy} - in random orders
    // Print all unique words
    System.out.println(biMap.keySet());    // print [snow, two, one, three, ball] - in random orders
    System.out.println(biMap.values());    // print [dwa, kula, jeden, snieg, trzy] - in random orders

    // Print translate by words
    System.out.println("one = " + biMap.get("one"));    // print one = jeden
    System.out.println("two = " + biMap.get("two"));    // print two = dwa
    System.out.println("kula = " + biMap.inverse().get("kula"));    // print kula = ball
    System.out.println("snieg = " + biMap.inverse().get("snieg"));    // print snieg = snow
    System.out.println("empty = " + biMap.get("empty"));    // print empty = null

    // Print count word's pair
    System.out.println(biMap.size());    //print 5
  1. अमरूद से HashMultiMap

     String INPUT_TEXT = "Hello World! Hello All! Hi World!";
     // Parse text to words and index
     List<String> words = Arrays.asList(INPUT_TEXT.split(" "));
     // Create Multimap
     Multimap<String, Integer> multiMap = HashMultimap.create();
    
     // Fill Multimap
     int i = 0;
     for(String word: words) {
         multiMap.put(word, i);
         i++;
     }
    
     // Print all words
     System.out.println(multiMap); // print {Hi=[4], Hello=[0, 2], World!=[1, 5], All!=[3]} - keys and values in random orders
     // Print all unique words
     System.out.println(multiMap.keySet());    // print [Hi, Hello, World!, All!] - in random orders
    
     // Print all indexes
     System.out.println("Hello = " + multiMap.get("Hello"));    // print [0, 2]
     System.out.println("World = " + multiMap.get("World!"));    // print [1, 5]
     System.out.println("All = " + multiMap.get("All!"));    // print [3]
     System.out.println("Hi = " + multiMap.get("Hi"));    // print [4]
     System.out.println("Empty = " + multiMap.get("Empty"));    // print []
    
     // Print count all words
     System.out.println(multiMap.size());    //print 6
    
     // Print count unique words
     System.out.println(multiMap.keySet().size());    //print 4
    

नोरे उदाहरण:

I. अपाचे संग्रह:

  1. MultiValueMap
  2. MultiValueMapLinked
  3. MultiValueMapTree

द्वितीय। जीएस / ग्रहण संग्रह

  1. FastListMultimap
  2. HashBagMultimap
  3. TreeSortedSetMultimap
  4. UnifiedSetMultimap

तृतीय। अमरूद

  1. HashMultiMap
  2. LinkedHashMultimap
  3. LinkedListMultimap
  4. TreeMultimap
  5. ArrayListMultimap

संग्रह के साथ संचालन की तुलना करें - संग्रह बनाएं

संग्रह के साथ संचालन की तुलना करें - संग्रह बनाएं

1. सूची बनाएँ
विवरण JDK अमरूद gs-संग्रह
खाली सूची बनाएं new ArrayList<> () Lists.newArrayList() FastList.newList()
मूल्यों से सूची बनाएँ Arrays.asList("1", "2", "3") Lists.newArrayList("1", "2", "3") FastList.newListWith("1", "2", "3")
क्षमता = 100 के साथ सूची बनाएं new ArrayList<>(100) Lists.newArrayListWithCapacity(100) FastList.newList(100)
किसी भी संग्रह से सूची बनाएँ new ArrayList<>(collection) Lists.newArrayList(collection) FastList.newList(collection)
किसी भी Iterable से सूची बनाएं - Lists.newArrayList(iterable) FastList.newList(iterable)
Iterator से सूची बनाएं - Lists.newArrayList(iterator) -
सरणी से सूची बनाएँ Arrays.asList(array) Lists.newArrayList(array) FastList.newListWith(array)
फैक्टरी का उपयोग करके सूची बनाएं - - FastList.newWithNValues(10, () -> "1")

उदाहरण:

    System.out.println("createArrayList start");
    // Create empty list
    List<String> emptyGuava = Lists.newArrayList(); // using guava
    List<String> emptyJDK = new ArrayList<>(); // using JDK
    MutableList<String>  emptyGS = FastList.newList(); // using gs

    // Create list with 100 element
    List < String > exactly100 = Lists.newArrayListWithCapacity(100); // using guava
    List<String> exactly100JDK = new ArrayList<>(100); // using JDK
    MutableList<String>  empty100GS = FastList.newList(100); // using gs

    // Create list with about 100 element
    List<String> approx100 = Lists.newArrayListWithExpectedSize(100); // using guava
    List<String> approx100JDK = new ArrayList<>(115); // using JDK
    MutableList<String>  approx100GS = FastList.newList(115); // using gs

    // Create list with some elements
    List<String> withElements = Lists.newArrayList("alpha", "beta", "gamma"); // using guava
    List<String> withElementsJDK = Arrays.asList("alpha", "beta", "gamma"); // using JDK
    MutableList<String>  withElementsGS = FastList.newListWith("alpha", "beta", "gamma"); // using gs

    System.out.println(withElements);
    System.out.println(withElementsJDK);
    System.out.println(withElementsGS);

    // Create list from any Iterable interface (any collection)
    Collection<String> collection = new HashSet<>(3);
    collection.add("1");
    collection.add("2");
    collection.add("3");

    List<String> fromIterable = Lists.newArrayList(collection); // using guava
    List<String> fromIterableJDK = new ArrayList<>(collection); // using JDK
    MutableList<String>  fromIterableGS = FastList.newList(collection); // using gs

    System.out.println(fromIterable);
    System.out.println(fromIterableJDK);
    System.out.println(fromIterableGS);
    /* Attention: JDK create list only from Collection, but guava and gs can create list from Iterable and Collection */

    // Create list from any Iterator
    Iterator<String> iterator = collection.iterator();
    List<String> fromIterator = Lists.newArrayList(iterator); // using guava
    System.out.println(fromIterator);

    // Create list from any array
    String[] array = {"4", "5", "6"};
    List<String> fromArray = Lists.newArrayList(array); // using guava
    List<String> fromArrayJDK = Arrays.asList(array); // using JDK
    MutableList<String>  fromArrayGS = FastList.newListWith(array); // using gs
    System.out.println(fromArray);
    System.out.println(fromArrayJDK);
    System.out.println(fromArrayGS);

    // Create list using fabric
    MutableList<String>  fromFabricGS = FastList.newWithNValues(10, () -> String.valueOf(Math.random())); // using gs
    System.out.println(fromFabricGS);

    System.out.println("createArrayList end");
2 सेट बनाएं
विवरण JDK अमरूद gs-संग्रह
खाली सेट बनाएं new HashSet<>() Sets.newHashSet() UnifiedSet.newSet()
मानों से सृजित सेट new HashSet<>(Arrays.asList("alpha", "beta", "gamma") ) Sets.newHashSet("alpha", "beta", "gamma") UnifiedSet.newSetWith("alpha", "beta", "gamma")
किसी भी संग्रह से सेट बनाएं new HashSet<>(collection) Sets.newHashSet(collection) UnifiedSet.newSet(collection)
किसी भी Iterable से सेट बनाएं - Sets.newHashSet(iterable) UnifiedSet.newSet(iterable)
किसी भी Iterator से सेट बनाएं - Sets.newHashSet(iterator) -
ऐरे से सेट बनाएँ new HashSet<>(Arrays.asList(array)) Sets.newHashSet(array) UnifiedSet.newSetWith(array)

उदाहरण:

    System.out.println("createHashSet start");
    // Create empty set
    Set<String> emptyGuava = Sets.newHashSet(); // using guava
    Set<String> emptyJDK = new HashSet<>(); // using JDK
    Set<String> emptyGS = UnifiedSet.newSet(); // using gs

    // Create set with 100 element
    Set<String> approx100 = Sets.newHashSetWithExpectedSize(100); // using guava
    Set<String> approx100JDK = new HashSet<>(130); // using JDK
    Set<String> approx100GS = UnifiedSet.newSet(130); // using gs

    // Create set from some elements
    Set<String> withElements =  Sets.newHashSet("alpha", "beta", "gamma"); // using guava
    Set<String> withElementsJDK = new HashSet<>(Arrays.asList("alpha", "beta", "gamma")); // using JDK
    Set<String> withElementsGS  = UnifiedSet.newSetWith("alpha", "beta", "gamma"); // using gs

    System.out.println(withElements);
    System.out.println(withElementsJDK);
    System.out.println(withElementsGS);

    // Create set from any Iterable interface (any collection)
    Collection<String> collection = new ArrayList<>(3);
    collection.add("1");
    collection.add("2");
    collection.add("3");

    Set<String> fromIterable = Sets.newHashSet(collection); // using guava
    Set<String> fromIterableJDK = new HashSet<>(collection); // using JDK
    Set<String> fromIterableGS  = UnifiedSet.newSet(collection); // using gs

    System.out.println(fromIterable);
    System.out.println(fromIterableJDK);
    System.out.println(fromIterableGS);
    /* Attention: JDK create set only from Collection, but guava and gs can create set from Iterable and Collection */

    // Create set from any Iterator
    Iterator<String> iterator = collection.iterator();
    Set<String> fromIterator = Sets.newHashSet(iterator); // using guava
    System.out.println(fromIterator);

    // Create set from any array
    String[] array = {"4", "5", "6"};
    Set<String> fromArray = Sets.newHashSet(array); // using guava
    Set<String> fromArrayJDK = new HashSet<>(Arrays.asList(array)); // using JDK
    Set<String> fromArrayGS  = UnifiedSet.newSetWith(array); // using gs
    System.out.println(fromArray);
    System.out.println(fromArrayJDK);
    System.out.println(fromArrayGS);

    System.out.println("createHashSet end");
3 नक्शा बनाएँ
विवरण JDK अमरूद gs-संग्रह
खाली नक्शा बनाएं new HashMap<>() Maps.newHashMap() UnifiedMap.newMap()
क्षमता = 130 के साथ नक्शा बनाएँ new HashMap<>(130) Maps.newHashMapWithExpectedSize(100) UnifiedMap.newMap(130)
अन्य मानचित्र से मानचित्र बनाएँ new HashMap<>(map) Maps.newHashMap(map) UnifiedMap.newMap(map)
चाबी से नक्शा बनाएं - - UnifiedMap.newWithKeysValues("1", "a", "2", "b")

उदाहरण:

    System.out.println("createHashMap start");
    // Create empty map
    Map<String, String> emptyGuava = Maps.newHashMap(); // using guava
    Map<String, String> emptyJDK = new HashMap<>(); // using JDK
    Map<String, String> emptyGS = UnifiedMap.newMap(); // using gs

    // Create map with about 100 element
    Map<String, String> approx100 = Maps.newHashMapWithExpectedSize(100); // using guava
    Map<String, String> approx100JDK = new HashMap<>(130); // using JDK
    Map<String, String> approx100GS = UnifiedMap.newMap(130); // using gs

    // Create map from another map
    Map<String, String> map = new HashMap<>(3);
    map.put("k1","v1");
    map.put("k2","v2");
    Map<String, String> withMap =  Maps.newHashMap(map); // using guava
    Map<String, String> withMapJDK = new HashMap<>(map); // using JDK
    Map<String, String> withMapGS = UnifiedMap.newMap(map); // using gs

    System.out.println(withMap);
    System.out.println(withMapJDK);
    System.out.println(withMapGS);

    // Create map from keys
    Map<String, String> withKeys =  UnifiedMap.newWithKeysValues("1", "a", "2", "b");
    System.out.println(withKeys);

    System.out.println("createHashMap end");

अधिक उदाहरण: CreateCollectionTest

  1. CollectionCompare
  2. CollectionSearch
  3. JavaTransform


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow