Java中的對象數(shù)組和容器都是用來存儲多個對象的數(shù)據(jù)結(jié)構(gòu),但它們在實現(xiàn)和使用上有所不同。
對象數(shù)組是一種最基本的數(shù)據(jù)結(jié)構(gòu),它可以存儲一組對象,可以通過下標(biāo)來訪問每個元素。例如,我們可以創(chuàng)建一個Person對象數(shù)組:
Person[] persons = new Person[10];
我們可以使用下標(biāo)來訪問數(shù)組中的每個元素:
Person p1 = persons[0];
Person p2 = persons[1];
//...
但是,對象數(shù)組的長度是固定的,一旦創(chuàng)建,就不能再改變數(shù)組的大小。
與對象數(shù)組不同,容器是一種動態(tài)的數(shù)據(jù)結(jié)構(gòu),可以在運行時添加或刪除元素,而不需要固定容量。
Java提供了許多容器類,如ArrayList、LinkedList、HashMap等,這些容器都實現(xiàn)了java.util.Collection接口或其子接口。
例如,我們可以使用ArrayList來存儲Person對象:
List<Person> personList = new ArrayList<>();
我們可以通過add()方法向personList中添加元素:
personList.add(p1);
personList.add(p2);
//...
我們也可以通過get()方法來獲取指定下標(biāo)的元素:
Person p = personList.get(0);
與對象數(shù)組相比,容器的優(yōu)點是可以動態(tài)地添加或刪除元素,而不需要預(yù)先知道容器的大小。
總的來說,對象數(shù)組和容器都是用來存儲多個對象的數(shù)據(jù)結(jié)構(gòu),但它們在實現(xiàn)和使用上有所不同,根據(jù)具體的需求選擇合適的數(shù)據(jù)結(jié)構(gòu)是非常重要的。