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


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.