क्या कोई विशेष कारण है कि ये गायब हैं?जावा 'बिटसेट' में `shiftLeft` और` shiftRight` फ़ंक्शन क्यों नहीं हैं?
वे BigInteger
में मौजूद हैं, लेकिन BigInteger
के अपरिवर्तनीय डिज़ाइन पैटर्न के कारण ये आमतौर पर बहुत धीमे होते हैं। BitSet
बहुत अच्छा है क्योंकि यह उत्परिवर्तनीय है, लेकिन मुझे shift
फ़ंक्शंस (<<
और >>>
long
के लिए वास्तव में याद आती है)। BitSet
के लिए, एक इनस्थल स्थानांतरण भी उपयोगी होगा, साथ ही चक्रीय रोटेशन भी होगा।
मैंने Shifting a Java BitSet का जवाब देखा है (स्थानांतरण के लिए get(off, len)
का उपयोग करके, हालांकि इसकी प्रतिलिपि की आवश्यकता है)।
मुझे गलत मत समझो। मुझे पता है कि बग की रिपोर्ट कहां करें। मैं बस सोच रहा हूं कि कोई विशेष कारण उन्हें छोड़ने के लिए था, उदा। कुछ डिजाइन पैटर्न या ऐसी अवधारणा। विशेष रूप से वे BigInteger
में शामिल हैं।
क्योंकि यह 'सेट' है, न कि 'स्ट्रिंग'। – bmargulies
@bmargulies: ए 'लम्बा' एक स्ट्रिंग नहीं है। फिर भी, इसमें शिफ्ट ऑपरेटर हैं। और वास्तव में एक 'स्ट्रिंग' नहीं है। और 'get (i, j) 'semantics अनिवार्य रूप से' substring' से सहमत हैं, और 'long' के लिए उपलब्ध नहीं हैं ... –
शब्द' सेट 'का अर्थ है' an * unordered * संग्रह '। बिटसेट के पास यह जानने का काम है कि 2 की कौन सी शक्तियां चालू हैं, उन्हें शफल करने की नहीं। – bmargulies