[Java] एक तत्व सरणीसूची को त्वरित और आसानी से कैसे बनाएं


Answers

Collections.singletonList(object)
Question

इस प्रश्न का उत्तर यहां दिया गया है:

क्या वहां कोई उपयोगिता विधि है जो इसे 1 लाइन में कर सकती है? मैं इसे Collections , या List में कहीं भी नहीं ढूंढ सकता।

public List<String> stringToOneElementList(String s) {
    List<String> list = new ArrayList<String>();
    list.add(s);
    return list;
}

मैं तब तक पहिया का पुन: आविष्कार नहीं करना चाहता जब तक कि मैं उस पर फैंसी रिम्स लगाने की योजना नहीं बनाता।

खैर ... प्रकार T हो सकता है, और String नहीं। लेकिन आपको बात समझ आ गयी। (सभी शून्य जांच, सुरक्षा जांच ... आदि के साथ)




फिर भी एक और विकल्प डबल ब्रेस प्रारंभिकता है , उदाहरण के लिए

new ArrayList<String>() {{ add(s); }};

लेकिन यह अक्षम और अस्पष्ट है । इसलिए केवल उपयुक्त:

  • कोड में जो स्मृति रिसाव को ध्यान में रखता है, जैसे अधिकांश यूनिट परीक्षण और अन्य अल्पकालिक कार्यक्रम;
  • और यदि कोई अन्य समाधान लागू नहीं होता है, जो मुझे लगता है कि आप इस बात का तात्पर्य करते हैं कि आपने नीचे दिए गए सभी प्रकार के नीचे स्क्रॉल किया है, तो प्रश्न में ArrayList की तुलना में एक अलग प्रकार के कंटेनर को पॉप्युलेट करना चाहते हैं।



जावा 8 स्ट्रीम के साथ:

Stream.of(object).collect(Collectors.toList())

या यदि आपको एक सेट की आवश्यकता है:

Stream.of(object).collect(Collectors.toSet())



बहुत सरलता से:

Arrays.asList("Hi!")