मैं एक जवाब here जहां कोड ConcurrentMap
की putIfAbsent
पद्धति के उपयोग का प्रदर्शन पढ़ तैनात मानचित्र करें कि इसका उपयोग किया जाएगा या नहीं। यदि वस्तु भारी है तो इसका महत्वपूर्ण प्रभाव हो सकता है।lambdas और putIfAbsent
यह मेरे लिए हुआ कि यह Lambdas का उपयोग करने का अवसर होगा। मैंने जावा 8 डाउनलोड नहीं किया है, क्या मैं आधिकारिक (कंपनी नीति) तक पहुंचने में सक्षम हूं, इसलिए मैं इसका परीक्षण नहीं कर सकता लेकिन क्या ऐसा कुछ वैध और प्रभावी होगा?
public long addTo(String key, long value) {
return map.putIfAbsent(key,() -> new AtomicLong(0)).addAndGet(value);
}
मैं new AtomicLong(0)
के मूल्यांकन में देरी करने के लिए जब तक यह वास्तव में निर्धारित किया जाता है कि यह है क्योंकि यह मानचित्र में मौजूद नहीं है बनाया जाना चाहिए लैम्ब्डा उपयोग करने के लिए उम्मीद कर रहा हूँ।
जैसा कि आप देख सकते हैं कि यह अधिक संक्षिप्त और कार्यात्मक है।
अनिवार्य रूप से मुझे लगता है कि मेरे सवालों हैं:
- क्या यह काम करता है?
- या मैंने पूरी तरह से लैम्बडास का गलत व्याख्या किया है?
- एक दिन इस काम की तरह कुछ हो सकता है?
आप जावा 8 डाउनलोड करने और इसे स्वयं परीक्षण करने में सक्षम नहीं हैं? क्या आपकी कंपनी आपको अपने काम कंप्यूटर पर कुछ भी स्थापित करने से रोकती है (मूल्यांकन उद्देश्यों के लिए भी)? फिर अपने व्यक्तिगत व्यक्ति पर कोशिश करने के बारे में कैसे? –
@ सिमोनलेहमान - बीटीडब्लू - आपकी टिप्पणी के बाद मैंने जावा 8 स्थापित किया और न केवल इसमें लैम्ब्डास था (एक अतिरिक्त मुझे स्थापित करना था, लेकिन इसके आसपास नहीं मिला) लेकिन डीबीविज़ुअलर ने काम करना बंद कर दिया - इसलिए मैंने इसे हटा दिया। माफ़ कीजिये। शायद अगले साल। – OldCurmudgeon