निम्न सिंटैक्स में के रूप में, the documentation for ArrayList#remove(int)
देखें:
list.remove(list.size() - 1)
यह इस प्रकार से लागू किया गया है। elementData
बैकिंग सरणी पर एक लुकअप करता है (इसलिए यह इसे सरणी से ढीला कर सकता है), जो स्थिर समय होना चाहिए (चूंकि JVM किसी ऑब्जेक्ट संदर्भ के आकार को जानता है और ऑफसेट की गणना करने वाली प्रविष्टियों की संख्या), और numMoved
इस मामले के लिए 0
है:
public E remove(int index) {
rangeCheck(index); // throws an exception if out of bounds
modCount++; // each time a structural change happens
// used for ConcurrentModificationExceptions
E oldValue = elementData(index);
int numMoved = size - index - 1;
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index,
numMoved);
elementData[--size] = null; // Let gc do its work
return oldValue;
}
स्रोत
2013-06-07 15:29:31
वहाँ है भी 'हटाने (int)' ... –
'list.remove (list.size() - 1)' !!! – NINCOMPOOP
क्या स्टैक यहां एक बेहतर समाधान होगा? –