2013-12-12 4 views
20

प्रारंभ करने के लिए Arrays.asList() का उपयोग करने का सबसे अच्छा तरीका क्या है I नीचे दिए गए कोड का उपयोग करें। दोनों मेरे आवेदन में ठीक काम कर रहे हैं।सूची

केस 1.

List<String> coreModules = 
    new ArrayList<String>(Arrays.asList(
     "TOOLBAR_TO_DO_LIST", 
     "TOOLBAR_PROPERTY", 
     "TOOLBAR_PEOPLE", 
     "TOOLBAR_INSURANCE", 
     "TOOLBAR_BATCH", 
     "TOOLBAR_INFORMATION_REFERENCE", 
     "TOOLBAR_LR_PROPERTY", 
     "TOOLBAR_CASE_FOLDER", 
     "TOOLBAR_INSPECTION_RESULT", 
     "TOOLBAR_MY_OFFICE")); 

प्रकरण 2.

List<String> coreModules = 
    Arrays.asList(
     "TOOLBAR_TO_DO_LIST", 
     "TOOLBAR_PROPERTY", 
     "TOOLBAR_PEOPLE", 
     "TOOLBAR_INSURANCE", 
     "TOOLBAR_BATCH", 
     "TOOLBAR_INFORMATION_REFERENCE", 
     "TOOLBAR_LR_PROPERTY", 
     "TOOLBAR_CASE_FOLDER", 
     "TOOLBAR_INSPECTION_RESULT", 
     "TOOLBAR_MY_OFFICE"); 

लेकिन मैं कुछ सवाल हैं:

  1. कौन सा बेहतर है एक प्रदर्शन के लिहाज से?
  2. किस मामले में केस 2 पसंद करते हैं?

और अधिक पढ़ें: http://java91.blogspot.in/2017/01/what-is-best-way-of-using-arraysaslist.html

+5

चेक इस बाहर: http://stackoverflow.com/questions/16748030/arrays-aslistarray-in-java –

उत्तर

39

केस 2 बेहतर प्रदर्शन के लिहाज से है लेकिन: यह एक अपरिवर्तनीय आकार के साथ एक सूची देता है। जिसका अर्थ है आप इसे से नहीं जोड़ सकते हैं/to/तत्वों को दूर:

एक निश्चित-आकार सूची निर्दिष्ट सरणी द्वारा समर्थित देता है। (लौटे सूची में किए गए परिवर्तन सरणी करने के लिए "के माध्यम से लिखना"।)

Arrays#asList

+2

जावाडोक (Arrays.asList के लिए) का कहना है : निर्दिष्ट सरणी द्वारा समर्थित एक निश्चित आकार की सूची देता है। (सरणी में लौटाई गई सूची में "लिखना" में परिवर्तन।) '। तो यह अपरिवर्तनीय नहीं है। –

+3

@ अर्नुद डेनोयेल, सूची से तत्व जोड़ने या निकालने का प्रयास करें और अपने आप को देखें :) आप मौजूदा तत्व को बदल सकते हैं लेकिन नए जोड़ नहीं सकते हैं। – Lital

+0

'java.lang.UnsupportedOperationException' आप सही हैं। आपके लिए +1 –

0

मुझे लगता है कि मामला 2 new String[10] बनाने की तरह है। आप आकार बदल नहीं सकते हैं लेकिन आप तत्व बदल सकते हैं। केस 1 आपको दोनों को करने की अनुमति देता है।

इससे पता चलता है कि आप क्या मामला 2 के साथ कर सकते हैं: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/util/Arrays.java#Arrays.ArrayList