एक सेट / सूची में गणना में परिवर्तित करें


172

क्या किसी दिए गए Enumeration को java.util.List या java.util.Set पर डंप करने के लिए कुछ वन-लाइनर पुल विधि है?

कुछ अंतर्निहित जैसा Arrays.asList()या Collection.toArray()कहीं मौजूद होना चाहिए, लेकिन मैं अपने IntelliJ डिबगर के मूल्यांकनकर्ता विंडो (और Google / SO परिणाम, भी) में नहीं मिल पा रहा हूं।

जवाबों:


321

आप एक में एक लाइन में Collections.list()परिवर्तित करने के लिए उपयोग कर सकते हैं :EnumerationList

List<T> list = Collections.list(enumeration);

पाने के लिए कोई समान विधि नहीं है Set, हालांकि आप अभी भी इसे एक पंक्ति में कर सकते हैं:

Set<T> set = new HashSet<T>(Collections.list(enumeration));

किसी तरह मैं इस विधि से छूटने के दौरान स्वत: पूर्णता ड्रॉपडाउन में चूक गया। धन्यवाद!
एंटोन के


5

अमरूद का उपयोग करते समय ( डॉक्टर देखें ) Iterators.forEnumeration। यह देखते हुए एक Enumeration xआप निम्नलिखित कर सकते हैं:

एक अपरिवर्तनीय सेट पाने के लिए:

ImmutableSet.copyOf(Iterators.forEnumeration(x));

एक अपरिवर्तनीय सूची पाने के लिए:

ImmutableList.copyOf(Iterators.forEnumeration(x));

हैशसेट पाने के लिए:

Sets.newHashSet(Iterators.forEnumeration(x));

5

सूची में परिवर्तित गणना का एक सरल उदाहरण है। इसके लिए मैंने Collections.list(enum)विधि का इस्तेमाल किया ।

public class EnumerationToList {

    public static void main(String[] args) {
        Vector<String> vt = new Vector<String>();
        vt.add("java");
        vt.add("php");
        vt.add("array");
        vt.add("string");
        vt.add("c");

        Enumeration<String> enm = vt.elements();
        List<String> ll = Collections.list(enm);
        System.out.println("List elements: " + ll);
    }

}

संदर्भ: गणना को सूची में कैसे परिवर्तित करें


3

यदि आपको Setइसके बजाय आवश्यकता है List, तो आप EnumSet.allOf () का उपयोग कर सकते हैं ।

Set<EnumerationClass> set = EnumSet.allOf(EnumerationClass.class);

अद्यतन : JakeRobb सही है। मेरा जवाब java.lang.Enum के बजाय java.util.Enumeration के बारे में है। असंबंधित उत्तर के लिए क्षमा करें।


2
मुझे पूरा यकीन है कि प्रश्नकर्ता java.util.Enumeration, Iterator की विरासत चचेरे भाई के बारे में पूछ रहा था, java.lang.Enum नहीं, जब आप 'enum' कीवर्ड का उपयोग करते हैं तो आपको जो चीज़ मिलती है।
JakeRobb

मैंने "java Convert enum in a set" के लिए एक Google खोज की और यह धागा पहली प्रतिक्रिया के रूप में वापस आया। @ तैमूर को मेरा हौसला मिलता है।
शेलड्यूड

-2

मुझे एक ही चीज की जरूरत थी और यह समाधान ठीक काम करता है, आशा है कि यह किसी को भी मदद कर सकता है

Enumeration[] array = Enumeration.values();
List<Enumeration> list = Arrays.asList(array);

तब आप अपने गणन का .name () प्राप्त कर सकते हैं।


5
आपका उत्तर दिखाता है कि किसी सरणी को किसी सूची में कैसे बदला जाए और यह केवल यह होता है कि आपके पास गणना की एक सरणी है। सवाल एन्यूमरेशन-> सूची रूपांतरण के बारे में था।
क्रीगर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.