दिलचस्प पोस्ट
जावा के साथ सेलेनियम वेबड्राइवर (सेलेनियम 2) में अलर्ट हैंडलिंग आप MySQL में "WITH" खंड का प्रयोग कैसे करते हैं? ग्रहण शुरू होने पर एसडीके को लोड करने में त्रुटि मैं ColorStateList प्रोग्राम को कैसे बनाऊं? JQuery के साथ जावास्क्रिप्ट: एक ही तत्व पर क्लिक करें और डबल क्लिक करें, अलग-अलग प्रभाव, एक दूसरे को अक्षम कर देता है हैशडोड () कैसे सुनिश्चित करने के लिए बराबर () के अनुरूप है? नई लाइन द्वारा PHP स्ट्रिंग विस्फोट मैं अपने एज़्यूर फ़ंक्शंस में कैसे NuGet पैकेज का उपयोग कर सकता हूं? म्यूटक्स का उपयोग करते हुए एक आवेदन के सिंगल इंस्टेंस को चलाएं विजुअल स्टूडियो 2012 / विज़ुअल स्टूडियो 2013 के साथ बिल्डिंग क्यूटी 5, और आईडीई के साथ एकीकृत करना हौप नक्शा माध्यमिक छँटाई कम करती है मैं सी # में गतिशील गुण कैसे बना सकता हूं? PrintWriter संलग्न विधि संलग्न नहीं है उद्देश्य-सी अपवाद कैसे .net Webbrowser नियंत्रण में स्मृति रिसाव के आसपास पाने के लिए?

एक पंक्ति में एक ArrayList का प्रारंभ करना

मैं परीक्षण प्रयोजनों के लिए विकल्पों की एक सूची बनाना चाहता हूं सबसे पहले, मैंने ऐसा किया:

ArrayList<String> places = new ArrayList<String>(); places.add("Buenos Aires"); places.add("Córdoba"); places.add("La Plata"); 

फिर मैंने निम्नानुसार कोड को पुन: लागू किया:

 ArrayList<String> places = new ArrayList<String>( Arrays.asList("Buenos Aires", "Córdoba", "La Plata")); 

क्या ऐसा करने के लिए इससे अच्छा तरीका है?

वेब के समाधान से एकत्रित समाधान "एक पंक्ति में एक ArrayList का प्रारंभ करना"

दरअसल, शायद ArrayList को आरंभ करने का "सबसे अच्छा" तरीका आपके द्वारा लिखी गई विधि है, क्योंकि इसे किसी भी तरह से एक नई List बनाने की आवश्यकता नहीं है:

 ArrayList<String> list = new ArrayList<String>(); list.add("A"); list.add("B"); list.add("C"); 

पकड़ यह है कि उस list उदाहरण को संदर्भित करने के लिए टाइपिंग की काफी कुछ है

ऐसे विकल्प हैं, जैसे एक अनाम इनर क्लास बनाने के लिए उदाहरण प्रारंभकर्ता (जिसे "डबल ब्रेस आरंभीकरण" के रूप में भी जाना जाता है):

 ArrayList<String> list = new ArrayList<String>() {{ add("A"); add("B"); add("C"); }}; 

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

क्या अच्छा होगा अगर परियोजना सिक्का के लिए संग्रह लिथल प्रस्ताव स्वीकार किया गया था (यह जावा 7 में पेश किया गया था, लेकिन यह जावा 8 का हिस्सा बनने की संभावना नहीं है।):

 List<String> list = ["A", "B", "C"]; 

दुर्भाग्य से यह यहां आपकी मदद नहीं करेगा, क्योंकि यह एक ऐरे List बजाए एक अपरिवर्तनीय List को प्रारंभ करेगा, और इसके अलावा, यह अभी तक उपलब्ध नहीं है, अगर यह कभी भी हो।

यह आसान होगा यदि आप इसे केवल एक List रूप में घोषित करना चाहते हैं – क्या यह एक ArrayList होना चाहिए?

 List<String> places = Arrays.asList("Buenos Aires", "Córdoba", "La Plata"); 

या यदि आपके पास केवल एक तत्व है:

 List<String> places = Collections.singletonList("Buenos Aires"); 

इसका मतलब होगा कि places को अपरिवर्तनीय (इसे बदलने की कोशिश में एक UnsupportedOperationException अपवाद अपवाद अपवाद फेंकने का कारण होगा)।

एक अस्थायी सूची बनाने के लिए जो कि एक ठोस ArrayList आप अपरिवर्तनीय सूची से एक ArrayList बना सकते हैं:

 ArrayList<String> places = new ArrayList<>(Arrays.asList("Buenos Aires", "Córdoba", "La Plata")); 

सरल उत्तर

जावा 8 या उससे पहले में:

 List<String> strings = Arrays.asList("foo", "bar", "baz"); 

यह आपको सरणी द्वारा समर्थित List प्रदान करेगा, इसलिए यह लंबाई को बदल नहीं सकता है, लेकिन आप List.set() को कॉल कर सकते हैं।


जावा 9 में:

 List<String> strings = List.of("foo", "bar", "baz"); 

यह आपको एक अपरिवर्तनीय List , इसलिए इसे बदला नहीं जा सकता। जो ज्यादातर मामलों में ठीक है, जहां आप वैसे भी इसे फिर से तैयार कर रहे हैं


छोटा जवाब

आप इसे स्थिर आयात के साथ भी छोटा कर सकते हैं:

 List<String> strings = asList("foo", "bar", "baz"); 

इसे स्थिर आयात की भी आवश्यकता है:

 import static java.util.Arrays.asList; 

कौन सा कोई आधुनिक IDE सुझाव देगा और आपके लिए स्वचालित रूप से करेंगे उदाहरण के लिए IntelliJ IDEA में आप Alt+Enter और Static import method... चयन करें Static import method...


मैं List.of विधि के साथ ऐसा करने की अनुशंसा नहीं करता, क्योंकि यह भ्रमित हो जाता है।


अगर आपको सच में एक ArrayList आवश्यकता होती है

जेईपी 269 (जोर खान) का हवाला देते हुए:

मूल्यों के पूर्वनिर्धारित सेट के साथ एक अयोग्य संग्रह आवृत्ति को आरंभ करने के लिए उपयोग के मामलों का एक छोटा सा सेट है आमतौर पर उन पूर्वनिर्धारित मानों को अपरिवर्तनीय संग्रह में रखना और फिर प्रतिलिपि कन्स्ट्रक्टर के माध्यम से अस्थिर संग्रह को प्रारंभ करने के लिए बेहतर होगा।

यदि आपको किसी कारण के लिए एक ArrayList , उदाहरण के लिए यदि आपको एक List आवश्यकता होती है जो लंबाई बदल सकती है, तो इसका उपयोग करें

 List<String> strings = new ArrayList<>(asList("foo", "bar", "baz")); 

या जावा 9 में:

 List<String> strings = new ArrayList<>(List.of("foo", "bar", "baz")); 

इंटरफेस के लिए कार्यक्रम, कार्यान्वयन के लिए नहीं

आपने कहा है कि आपने सूची को अपने कोड में एक ArrayList रूप में घोषित किया है, लेकिन आपको ऐसा नहीं करना चाहिए जब तक कि आप किसी सदस्य का उपयोग नहीं कर रहे हैं जो List में नहीं है, उदाहरण के लिए ArrayList.ensureCapacity() । जो बहुत ज्यादा कभी नहीं है

आम तौर पर आपको केवल सबसे सामान्य इंटरफ़ेस द्वारा चर की घोषणा करना चाहिए जो आप उपयोग करने जा रहे हैं (उदाहरण के लिए Iterable , Collection , या List ), और उन्हें विशिष्ट कार्यान्वयन (उदाहरण के लिए, Arrays.asList() , Arrays.asList() या Arrays.asList()Arrays.asList() ) के साथ प्रारंभ करें।

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

उदाहरण के लिए:

 // Iterable if you just need iteration, for (String s : strings): Iterable<String> strings = new ArrayList<>(); // Collection if you also need .size() or .stream(): Collection<String> strings = new ArrayList<>(); // List if you also need .get(index): List<String> strings = new ArrayList<>(); // Don't declare a specific list implementation // unless you're sure you need it: ArrayList<String> strings = new ArrayList<>(); // You don't need ArrayList 

एक अन्य उदाहरण हमेशा एक InputStream चर को घोषित कर देगा, हालांकि यह आमतौर पर एक FileInputStream या एक BufferedInputStream , क्योंकि एक दिन जल्दी ही आप या कोई अन्य किसी अन्य प्रकार की InputStream का उपयोग करना चाहेंगे।

यदि आपको आकार 1 की एक साधारण सूची की आवश्यकता है:

 List<String> strings = new ArrayList<String>(Collections.singletonList("A")); 

यदि आपको कई ऑब्जेक्ट की सूची चाहिए:

 List<String> strings = new ArrayList<String>(); Collections.addAll(strings,"A","B","C","D"); 

अमरूद के साथ आप लिख सकते हैं:

 ArrayList<String> places = Lists.newArrayList("Buenos Aires", "Córdoba", "La Plata")); 

गवा में अन्य उपयोगी स्थैतिक कन्स्ट्रक्टर भी हैं। आप यहां उनके बारे में पढ़ सकते हैं

कलेक्शन लिटरल्स ने इसे 8 जावा में नहीं बनाया, लेकिन एक ऐप्पल लाइन में एक सूची को आरम्भ करने के लिए स्ट्रीम एपीआई का इस्तेमाल करना संभव है:

 List<String> places = Stream.of("Buenos Aires", "Córdoba", "La Plata").collect(Collectors.toList()); 

यदि आपको यह सुनिश्चित करने की आवश्यकता है कि आपकी List एक ArrayList :

 ArrayList<String> places = Stream.of("Buenos Aires", "Córdoba", "La Plata").collect(Collectors.toCollection(ArrayList::new)); 
 import com.google.common.collect.ImmutableList; .... List<String> places = ImmutableList.of("Buenos Aires", "Córdoba", "La Plata"); 

आप एक कारखाना विधि बना सकते हैं:

 public static ArrayList<String> createArrayList(String ... elements) { ArrayList<String> list = new ArrayList<String>(); for (String element : elements) { list.add(element); } return list; } .... ArrayList<String> places = createArrayList( "São Paulo", "Rio de Janeiro", "Brasília"); 

लेकिन यह आपके पहले रिफैक्टरिंग से बेहतर नहीं है

अद्यतन: अधिक लचीलेपन के लिए, यह सामान्य हो सकता है:

 public static <T> ArrayList<T> createArrayList(T ... elements) { ArrayList<T> list = new ArrayList<T>(); for (T element : elements) { list.add(element); } return list; } 

Java 9 साथ, जैसा कि जेडीके संवर्द्धन प्रस्ताव में सुझाया गया – 269 , यह संग्रह संग्रह के रूप में अब हासिल किया जा सकता है –

 List<String> list = List.of("A", "B", "C"); Set<String> set = Set.of("A", "B", "C"); 

इसके अलावा एक समान दृष्टिकोण Map पर भी लागू होगा –

 Map<String, String> map = Map.of("k1", "v1", "k2", "v2", "k3", "v3") 

जो कूच लिबरल प्रस्ताव के समान है जैसा कि @कोबर्ड द्वारा भी कहा गया है। इसके अलावा जेईपी डॉक्टर के रूप में भी स्पष्ट किया गया –


वैकल्पिक

भाषा परिवर्तन कई बार माना जाता है, और अस्वीकार कर दिया गया है:

परियोजना सिक्का प्रस्ताव, 2 9 मार्च 200 9

परियोजना सिक्का प्रस्ताव, 30 मार्च 200 9

लैम्ब्डा-देव, जनवरी-मार्च 2014 पर जेईपी 186 चर्चा

इस संदेश में सारांशित भाषा प्रस्ताव एक लाइब्रेरी-आधारित प्रस्ताव के लिए प्राथमिकता में अलग किए गए थे ।

जंजीर उसी के बारे में पढ़ें ~> अतिभारित सुविधा फैक्टरी तरीके का क्या मतलब है

आप नीचे दिए गए कथन का उपयोग कर सकते हैं:

सांकेतिक टुकड़ा:

 String [] arr = {"Sharlock", "Homes", "Watson"}; List<String> names = Arrays.asList(arr); 

यह करने के लिए सबसे कॉम्पैक्ट तरीके से है:

 Double array[] = { 1.0, 2.0, 3.0}; List<Double> list = Arrays.asList(array); 

एक्लिप्स संग्रह (पहले जीएस संग्रह ) के साथ, आप निम्न लिख सकते हैं:

 List<String> list = Lists.mutable.with("Buenos Aires", "Córdoba", "La Plata"); 

आप प्रकारों के बारे में अधिक विशिष्ट हो सकते हैं और चाहे वे उत्परिवर्तनीय या अपरिवर्तनीय हों

 MutableList<String> mList = Lists.mutable.with("Buenos Aires", "Córdoba", "La Plata"); ImmutableList<String> iList = Lists.immutable.with("Buenos Aires", "Córdoba", "La Plata"); 

आप सेट और बैग के साथ भी ऐसा कर सकते हैं:

 Set<String> set = Sets.mutable.with("Buenos Aires", "Córdoba", "La Plata"); MutableSet<String> mSet = Sets.mutable.with("Buenos Aires", "Córdoba", "La Plata"); ImmutableSet<String> iSet = Sets.immutable.with("Buenos Aires", "Córdoba", "La Plata"); Bag<String> bag = Bags.mutable.with("Buenos Aires", "Córdoba", "La Plata"); MutableBag<String> mBag = Bags.mutable.with("Buenos Aires", "Córdoba", "La Plata"); ImmutableBag<String> iBag = Bags.immutable.with("Buenos Aires", "Córdoba", "La Plata"); 

नोट: मैं एक्लिप्स संग्रह के लिए एक कंपाइटर हूं।

बस इस रूप में उपयोग करें

 List<String> list = new ArrayList<String>() {{ add("A"); add("B"); add("C"); }}; 

यहां एक और तरीका है:

 List<String> values = Stream.of("One", "Two").collect(Collectors.toList()); 

(एक टिप्पणी होना चाहिए, लेकिन बहुत लंबा है, इसलिए नया उत्तर)। जैसा कि दूसरों ने उल्लेख किया है, arrays.asList विधि का आकार निश्चित है, लेकिन यह इसके साथ एकमात्र मुद्दा नहीं है। यह बहुत अच्छी तरह से विरासत संभाल नहीं करता है उदाहरण के लिए, मान लें कि आपके पास निम्न है:

 class A{} class B extends A{} public List<A> getAList(){ return Arrays.asList(new B()); } 

उपरोक्त परिणाम एक कंपाइलर त्रुटि में है, क्योंकि List<B> (जो कि है जो arrays.asList द्वारा लौटा दी गई है) List<A> का उपवर्ग नहीं है, भले ही आप एक List<A> वस्तु के लिए प्रकार बी के ऑब्जेक्ट जोड़ सकते हैं । इस के आसपास पाने के लिए, आपको कुछ ऐसा करने की आवश्यकता है:

 new ArrayList<A>(Arrays.<A>asList(b1, b2, b3)) 

यह संभवतः ऐसा करने के बारे में जाने का सबसे अच्छा तरीका है, esp अगर आपको असीम सूची की आवश्यकता है या विरासत का उपयोग करने की आवश्यकता है

जैसे टॉम ने कहा :

 List<String> places = Arrays.asList("Buenos Aires", "Córdoba", "La Plata"); 

लेकिन जब आप एक ArrayList चाहते हैं, तो आपको सबसे पहले पता होना चाहिए कि ArrayList सूची का एक उप वर्ग है और आप बस इस रेखा को जोड़ सकते हैं:

 ArrayList<String> myPlaces = new ArrayList(places); 

हालांकि, इससे आप 'प्रदर्शन' की शिकायत कर सकते हैं

उस स्थिति में यह मुझे समझ में नहीं आता है, क्यों, क्योंकि आपकी सूची पूर्वनिर्धारित है, यह एक सरणी के रूप में परिभाषित नहीं किया गया था (क्योंकि आकार प्रारंभिक समय के समय में जाना जाता है)। और अगर यह आपके लिए एक विकल्प है:

 String[] places = {"Buenos Aires", "Córdoba", "La Plata"}; 

यदि आप नाबालिग प्रदर्शन मतभेदों की परवाह नहीं करते हैं, तो आप एक सरणी को एक ArrayList में बहुत आसानी से कॉपी कर सकते हैं:

 ArrayList<String> myPlaces = new ArrayList(Arrays.asList(places)); 

ठीक है, लेकिन भविष्य में आपको केवल जगह का नाम की तुलना में थोड़ी अधिक आवश्यकता है, आपको एक देश कोड भी चाहिए। मान लें यह अभी भी एक पूर्वनिर्धारित सूची है जो रन-टाइम के दौरान कभी नहीं बदलेगा, तो यह एक enum सेट का उपयोग करने के लिए उपयुक्त है, जिसकी भविष्य में सूची को बदलने की आवश्यकता होती है, जिसके लिए पुन: संकलन की आवश्यकता होगी

 enum Places {BUENOS_AIRES, CORDOBA, LA_PLATA} 

बन जाएगा:

 enum Places { BUENOS_AIRES("Buenos Aires",123), CORDOBA("Córdoba",456), LA_PLATA("La Plata",789); String name; int code; Places(String name, int code) { this.name=name; this.code=code; } } 

Enum के पास एक स्थिर values विधि है जो एक सरणी देता है जिसमें वे मान के सभी मूल्यों को घोषित करते हैं, जैसे:

 for (Places p:Places.values()) { System.out.printf("The place %s has code %d%n", p.name, p.code); } 

उस स्थिति में मुझे लगता है कि आपको अपने ऐरेएललिस्ट की ज़रूरत नहीं होगी

पीएस रांडिया ने स्थिर उपयोगिता पद्धति का प्रयोग करके एक और अच्छा तरीका दिखाया ।

 List<String> names = Arrays.asList("2","@2234","21","11"); 

इस कोड लाइन के साथ प्रयास करें:

 Collections.singletonList(provider) 

जावा 9 में एक अपरिवर्तनीय सूची बनाने की निम्नलिखित विधि है:

 List<String> places = List.of("Buenos Aires", "Córdoba", "La Plata"); 

जो आसानी से एक अस्थायी सूची बनाने के लिए अनुकूलित किया जाता है, यदि आवश्यक हो:

 List<String> places = new ArrayList<>(List.of("Buenos Aires", "Córdoba", "La Plata")); 

Set और Map लिए समान तरीके उपलब्ध हैं

आप कैक्टोज से स्टिकी लिस्ट का उपयोग कर सकते हैं:

 List<String> names = new StickyList<>( "Scott Fitzgerald", "Fyodor Dostoyevsky" ); 

जावा में, आप ऐसा नहीं कर सकते

 ArrayList<String> places = new ArrayList<String>( Arrays.asList("Buenos Aires", "Córdoba", "La Plata")); 

जैसा कि बताया गया था, आपको एक डबल ब्रेस आरंभीकरण करने की आवश्यकता होगी:

 List<String> places = new ArrayList<String>() {{ add("x"); add("y"); }}; 

लेकिन यह आपको @SuppressWarnings("serial") एक एनोटेशन को जोड़ने या एक धारावाहिक @SuppressWarnings("serial") उत्पन्न करने में मजबूर कर सकता है जो परेशान है। इसके अलावा, ज्यादातर कोड फ़ॉर्मेट्स खोलेंगे जो कि कई स्टेटमेंट / लाइनों में।

वैकल्पिक रूप से आप ऐसा कर सकते हैं

 List<String> places = Arrays.asList(new String[] {"x", "y" }); 

लेकिन फिर आप एक @SuppressWarnings("unchecked") करना चाहते हैं

इसके अलावा javadoc के अनुसार आप ऐसा करने में सक्षम होना चाहिए:

 List<String> stooges = Arrays.asList("Larry", "Moe", "Curly"); 

लेकिन मैं इसे जेडीके 1.6 के साथ संकलित करने में सक्षम नहीं हूं।

हाँ, Arrays की मदद से आप सरणी सूची को एक पंक्ति में प्रारंभ कर सकते हैं,

 List<String> strlist= Arrays.asList("aaa", "bbb", "ccc"); 

यहां एबाक्यूयूटील द्वारा कोड है

 // ArrayList List<String> list = N.asList("Buenos Aires", "Córdoba", "La Plata"); // HashSet Set<String> set = N.asSet("Buenos Aires", "Córdoba", "La Plata"); // HashMap Map<String, Integer> map = N.asMap("Buenos Aires", 1, "Córdoba", 2, "La Plata", 3); // Or for Immutable List/Set/Map ImmutableList.of("Buenos Aires", "Córdoba", "La Plata"); ImmutableSet.of("Buenos Aires", "Córdoba", "La Plata"); ImmutableSet.of("Buenos Aires", 1, "Córdoba", 2, "La Plata", 3); // The most efficient way, which is similar with Arrays.asList(...) in JDK. // but returns a flexible-size list backed by the specified array. List<String> set = Array.asList("Buenos Aires", "Córdoba", "La Plata"); 

घोषणा: मैं एबैकस यूटल के डेवलपर हूं।

 Collections.singletonList(messageBody) 

अगर आपको एक वस्तु की सूची की आवश्यकता होती है !

संग्रह java.util पैकेज से है।

ऐसा करने का सबसे अच्छा तरीका:

 package main_package; import java.util.ArrayList; public class Stackkkk { public static void main(String[] args) { ArrayList<Object> list = new ArrayList<Object>(); add(list, "1", "2", "3", "4", "5", "6"); System.out.println("I added " + list.size() + " element in one line"); } public static void add(ArrayList<Object> list,Object...objects){ for(Object object:objects) list.add(object); } } 

बस उस फ़ंक्शन को बनाइये जिसे आप चाहते हैं के रूप में कई तत्व हो सकते हैं और उन्हें एक पंक्ति में जोड़ने के लिए कॉल कर सकते हैं

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

सूची को एक पंक्ति में घोषित करने के बारे में, इस तरह से यह ग्रूवी में दिखता है:

 def list1 = [1,2,3] 

यह बात है, मान !!!

ग्रोवी सूचियों पर यहाँ अधिक है

अतिरिक्त

एक पंक्ति में Groovy में एक नक्शा घोषित करना:

 def map1 = [key1:1,key2:2] 

यहां ग्रोवी मैप्स पर अधिक जानकारी दी गई है ।

JSON फ़ाइल पढ़ना,

 { "map1":{"map2":{"key":"value1"}}} 

एक पंक्ति में निम्नानुसार है:

 String value = new JsonSlurper().parse("path\\to\\file")["map1"]["map2"]["key"] 

या

 String value = new JsonSlurper().parse("path\\to\\file").map1.map2.key 

value लिए value सेट दोनों

जैक्सन एपीआई के साथ ऐसा करने की कल्पना करो आपको map1 और map2 के लिए संबंधित पीओओओओ लिखना होगा। फिर संकलन करें साथ ही हर बार JSON परिवर्तन, आपको उन परिवर्तनों को प्रतिबिंबित करना होगा जो पीओओजो में होते हैं। यह पूरी तरह से कार्यक्षमता JSON विन्यास बनाने के लक्ष्य को धराशायी करता है। यह घातक कॉन्फ़िगर-कोड-पुनः कंपाइल श्रृंखला है। न सिर्फ कॉन्फ़िगर और जाना

जब मैं जावा का उपयोग करने के लिए कहा गया था, तब मैं रो रहा था क्यों दुनिया क्यों ???? (या कृपया मुझे उजागर करें अगर गलत है … जावा वर्ल्ड में मेरे बहुत से दर्द कम करेगा)

जावा 9 में हम आसानी से एक पंक्ति में एक ArrayList को प्रारंभ कर सकते हैं:

 List<String> places = List.of("Buenos Aires", "Córdoba", "La Plata"); 

या

 List<String> places = new ArrayList<>(List.of("Buenos Aires", "Córdoba", "La Plata")); 

जावा 9 के इस नए दृष्टिकोण में पिछले वाले के कई फायदे हैं:

  1. अंतरिक्ष दक्षता
  2. अचल स्थिति
  3. सुरक्षित धागा

अधिक जानकारी के लिए इस पोस्ट को देखें -> सूची और। के बीच अंतर क्या है?

मेरे लिए Arrays.asList () सबसे अच्छा और सुविधाजनक है मैं हमेशा उस तरह से आरंभ करना चाहता हूं यदि आप जावा कलेक्शंस में शुरुआत कर रहे हैं, तो मैं आपको ArrayList initialization का उल्लेख करना चाहता हूं

असल में, यह एक पंक्ति में करना संभव है:

 Arrays.asList(new MyClass[] {new MyClass("arg1"), new MyClass("arg2")}) 
 public static <T> List<T> asList(T... a) { return new ArrayList<T>(a); } 

यह Arrays.asList का कार्यान्वयन है, इसलिए आप इसके साथ जा सकते हैं

 ArrayList<String> arr = (ArrayList<String>) Arrays.asList("1", "2");