2016-02-14 7 views
7

पर बदलें सभी स्ट्रिंग्स की सूची को ऊपरी मामले में बदलना चाहते हैं।तारों की सूची के सभी तत्वों को ऊपरी मामले

List<String> list = Arrays.asList("abc", "def", "ghi"); 
List<String> upped = list.stream().map(String::toUpperCase).collect(Collectors.toList()); 

वहाँ है एक सरल/बेहतर यह करने के लिए जिस तरह से:

यहाँ यह करने के लिए मेरे कोड है?

+1

वहाँ हमेशा एक और तरीका है। एक लूप की तरह। आप किस तरह का जवाब ढूंढ रहे हैं? – Tunaki

+0

आप एक आवर्धक ग्लास के साथ एक सौर बीम और शिफ्ट बिट्स का उपयोग कर सकते हैं। – Tunaki

+0

आप [तितलियों का उपयोग] [https://xkcd.com/378/) कर सकते हैं। – azurefrog

उत्तर

22

आपने वास्तव में सूची को परिवर्तित नहीं किया है; आपने एक नई सूची बनाई है।

एक छोटी सी विधि कॉल में सूची को बदलने, List#replaceAll() का उपयोग करें:

list.replaceAll(String::toUpperCase); 
+0

क्या यह वास्तव में परिवर्तित स्ट्रिंग्स को सूची में उनके सम्मानित पदों पर असाइन करता है? मैं केवल इसलिए पूछता हूं क्योंकि मैं स्ट्रिंग प्रारूप 's = s.replaceAll() 'में उपयोग किया जाता हूं लेकिन मैं सूची के लिए इस कार्यान्वयन से परिचित नहीं हूं। अच्छी जानकारी की तरह लगता है :) –

+1

@ CalvinP.yes - यह प्रदान किए गए लैम्ब्डा का उपयोग करके प्रत्येक तत्व पर एक इन-प्लेस रूपांतरण करता है, इसलिए तत्व ऑर्डर संरक्षित है। – Bohemian

+0

आह जानना अच्छा है। मैं निकट भविष्य में –

संबंधित मुद्दे