একটি সেট / তালিকায় রূপান্তর করুন


172

Java.util.List বা java.util.Set এ প্রদত্ত গণনাটি ফেলে দেওয়ার জন্য কি ওয়ান-লাইনার সেতু পদ্ধতি রয়েছে?

কিছু অন্তর্নির্মিত মত Arrays.asList()বা Collection.toArray()কোথাও উপস্থিত থাকা উচিত, তবে আমি এটি খুঁজে পেতে পারছি না আমার ইন্টেলিজ ডিবাগারের মূল্যায়নকারী উইন্ডোতে (এবং গুগল / এসও ফলাফলগুলিও)।

উত্তর:


321

আপনি ব্যবহার করতে পারেন Collections.list()একটি রূপান্তর করতে Enumerationএকটি থেকে Listএক লাইন মধ্যে:

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

}

রেফারেন্স: তালিকাতে কীভাবে রূপান্তর করবেন to


3

Setপরিবর্তে আপনার যদি প্রয়োজন হয় তবে আপনি EnumSet.allOf ()List ব্যবহার করতে পারেন ।

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

আপডেট : জ্যাকরব ঠিক বলেছেন। আমার উত্তর java.util.Enumeration এর পরিবর্তে java.lang.Enum সম্পর্কে। অসম্পূর্ণ উত্তরের জন্য দুঃখিত


2
আমি নিশ্চিত যে প্রশ্নকর্তা java.util.Eeumeration সম্পর্কে জিজ্ঞাসা করেছিলেন, জাভা.আং.নাম নয়, আইট্রেটারের উত্তরাধিকারী কাজিন, জাভা.আং.নাম, আপনি 'এনুম' কীওয়ার্ড ব্যবহার করার সময় যে জিনিসটি পেয়ে যাবেন তা পাবেন।
— জেকরব

আমি "জাভা রূপান্তর এনামকে একটি সেটের জন্য" গুগল অনুসন্ধান করেছি এবং এই থ্রেডটি প্রথম প্রতিক্রিয়া হিসাবে ফিরে এসেছিল। @ টিমুর আমার উত্সাহ পেয়েছে।
— শেলডুড

-2

আমার একই জিনিসটি প্রয়োজন এবং এই সমাধানটি ভাল কাজ করেছে, আশা করি এটি কারও পক্ষে সহায়তা করতে পারে

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

তারপরে আপনি আপনার গণনার .name () পেতে পারেন।


5
আপনার উত্তরটি দেখায় যে কীভাবে একটি অ্যারেটিকে একটি তালিকায় রূপান্তর করা যায় এবং এটি কেবল তখন ঘটে থাকে যখন আপনি একটি অঙ্কের অ্যারি রাখবেন। প্রশ্নটি ছিল গণনা-> তালিকা রূপান্তর সম্পর্কে।
— ক্রাইগার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.