भले ही यह सवाल का सीधा जवाब नहीं है, यह .length
बनाम .size()
तर्क के लिए एक अतिरिक्त है । मैं इस प्रश्न से संबंधित कुछ शोध कर रहा था, इसलिए जब मैं इसके पार आया तो मैंने देखा कि यहाँ परिभाषा (ओं) को प्रदान किया गया है
सार्वजनिक अंतिम फ़ील्ड लंबाई, जिसमें सरणी के घटकों की संख्या होती है ।
"बिल्कुल" सही नहीं है।
फ़ील्ड की लंबाई में घटक डालने के लिए उपलब्ध स्थानों की संख्या होती है , न कि सरणी में मौजूद घटकों की संख्या। तो यह उस सरणी के लिए आवंटित कुल उपलब्ध मेमोरी का प्रतिनिधित्व करता है, न कि उस मेमोरी का कितना भरा हुआ है।
उदाहरण:
static class StuffClass {
int stuff;
StuffClass(int stuff) {
this.stuff = stuff;
}
}
public static void main(String[] args) {
int[] test = new int[5];
test[0] = 2;
test[1] = 33;
System.out.println("Length of int[]:\t" + test.length);
String[] test2 = new String[5];
test2[0] = "2";
test2[1] = "33";
System.out.println("Length of String[]:\t" + test2.length);
StuffClass[] test3 = new StuffClass[5];
test3[0] = new StuffClass(2);
test3[1] = new StuffClass(33);
System.out.println("Length of StuffClass[]:\t" + test3.length);
}
आउटपुट:
Length of int[]: 5
Length of String[]: 5
Length of StuffClass[]: 5
हालाँकि, की .size()
संपत्ति ArrayList
सूची में तत्वों की संख्या देती है:
ArrayList<Integer> intsList = new ArrayList<Integer>();
System.out.println("List size:\t" + intsList.size());
intsList.add(2);
System.out.println("List size:\t" + intsList.size());
intsList.add(33);
System.out.println("List size:\t" + intsList.size());
आउटपुट:
List size: 0
List size: 1
List size: 2