दुर्भाग्य से, आप नहीं कर सकते। जो आप अनिवार्य रूप से पूछ रहे हैं वह सी/सी ++ पॉइंटर अंकगणितीय है, और जावा में ऐसी कोई चीज़ नहीं है।
हालांकि, यदि आप एक अलग इंटरफ़ेस का उपयोग करने के इच्छुक हैं, तो आपके पास Commons Primitives ArrayByteList
के साथ कुछ भाग्य हो सकता है। यह List<Byte>
का एक साधारण सरणी नहीं है, क्योंकि इसे byte
एस की वास्तविक सरणी द्वारा समर्थित किया गया है - इस प्रकार Byte
ऑब्जेक्ट्स का उपयोग करने के कारण कोई मेमोरी ओवरहेड नहीं है। आपके पास अभी भी कुछ ऑब्जेक्ट ओवरहेड होगा, लेकिन यह व्यावहारिक उदाहरणों में स्वीकार्य है।
सबसे महत्वपूर्ण बात यह है कि यह ArrayByteList.subList()
विधि के माध्यम से स्लाइस का समर्थन करता है, जो प्रति कॉपी नहीं करता है। आप source code देख सकते हैं, स्लाइस को प्रारंभिक और अंत स्थिति के लिए मूल सरणी के साथ दो मार्करों के संदर्भ के रूप में कार्यान्वित किया जाता है।
हालांकि, ध्यान रखें कि प्रतिलिपि से बचने का मतलब है कि स्लाइस में परिवर्तन मूल सरणी में दिखाई देता है। यह शायद आप जो चाहते हैं, लेकिन फिर भी बहुत सावधान रहें - खासकर अगर आप सी/सी ++ पृष्ठभूमि से नहीं आते हैं, जहां ये चीजें आम अभ्यास हैं।
स्रोत
2014-12-15 20:46:27
दुर्भाग्य से, आप नहीं कर सकते। शायद यह एक विकल्प है: http: //fastutil.di.unimi।यह/दस्तावेज़/यह/unimi/dsi/fastutil/बाइट्स/ByteList.html # उपसूची (int, int)? –
@LyubomyrShaydariv कि उपयोगिता को 'सूची' द्वारा समर्थित किया गया है, मेरा उत्तर देखें। –
@StefanoSanfilippo इसे 'सूची' द्वारा समर्थित नहीं है - http://grepcode.com/file/repo1.maven.org/maven2/it.unimi.dsi/fastutil/6.5.1/it/unimi/dsi/ fastutil/बाइट्स/ByteArrayList.java - इसमें आंतरिक 'बाइट [] ए' है,' बाइट [] ए' नहीं। फास्टुटिल कुशल आदिम संग्रह और मानचित्र के लिए डिज़ाइन किया गया है। –