क्या कुछ तरीके हैं जो मैं स्ट्रिंगबिल्डर को क्लोन कर सकता हूं? मैं बिट्स द्वारा फाइलें पढ़ रहा हूं, फिर इन बिट्स को ASCII वर्णों में कनवर्ट करें, इसके बाद मैं स्ट्रिंग बिल्डर में वर्ण एकत्र करता हूं और जब मेरे पास उदाहरण के लिए 8 अक्षर हैं तो मैंने उस स्ट्रिंग बिल्डर ऑब्जेक्ट को ऐरे लिस्ट में रखा है। फिर मैं इसे साफ करता हूं और फिर वही करता हूं। हालांकि मैं स्मृति के कारण नया स्ट्रिंग बिल्डर नहीं बना सकता और मैं उस स्ट्रिंग बिल्डर में परिवर्तन नहीं कर सकता क्योंकि ऐरे सूची में भी निर्माता बदलता है।क्लोन कैसे करें() स्ट्रिंगबिल्डर
तो मुझे लगता है कि मुझे उस स्ट्रिंग बिल्डर को क्लोन करना होगा और इसे ऐरे सूची में रखना होगा। स्ट्रिंग बिल्डर के पास केवल एक समस्या नहीं है क्लोन()। तो मेरे विकल्प क्या हैं?
शायद कोई कुछ विचार दे सकता है कि प्रदर्शन और स्मृति के बारे में विचार करने के लिए यह साफ तरीका क्या है।
ArrayList वर्ण = नया ArrayList(); int काउंटर = 0;
StringBuilder sb = new StringBuilder(blockSize-1);
while (mbb.hasRemaining()) {
char charAscii = (char)mbb.get();
counter++;
charCounter++;
if (counter == blockSize){
sb.append(charAscii);
characters.add(sb);//sb.toString()
sb.delete(0, sb.length());
counter = 0;
}else{
sb.append(charAscii);
}
if(!mbb.hasRemaining()){
characters.add(sb);
}
}
fc.close();
return characters;
"मैं नया स्ट्रिंग बिल्डर स्मृति की वजह से नहीं बना सकते हैं" यह आपकी मदद करता है? – DNA
'नया स्ट्रिंगबिल्डर (oldbuilder.toString()) स्ट्रिंगबिल्डर की प्रतिलिपि बनाने का सबसे आसान तरीका है। आपने वास्तव में समझाया नहीं है कि आप क्या हासिल करने की कोशिश कर रहे हैं, इसलिए आप स्ट्रिंगबिल्डर से स्ट्रिंग को बस स्टोर करने में सक्षम हो सकते हैं। – DNA
याप समझ गया कि यह वैसे भी मदद नहीं करेगा। इसलिए मैं इस पात्रों के विकल्प विकल्पों में से बाहर हूं। नया (नया स्ट्रिंगबिल्डर (एसबी)); जावा आउटऑफमेमरी अपवाद देता है – Streetboy