9. ArrayList 存儲、取出、操作對象
ArrayList 可動態存儲任意數量對象,底層數組自動擴容。
核心方法速查
| 方法 | 說明 |
add(Object) | 尾部添加 |
add(index, Object) | 指定位置插入 |
get(index) | 獲取元素 |
remove(Object)/remove(index) | 刪除 |
size() | 元素數量 |
contains(Object) | 是否包含 |
indexOf(Object) | 首次索引 |
set(index, Object) | 替換元素 |
clear() | 清空 |
isEmpty() | 判空 |
代碼示例:存儲字符串與自定義對象
ArrayList cityList = new ArrayList();
cityList.add("Beijing");
cityList.add("Shanghai");
// ... 操作演示
// 存儲對象需類型轉換
cityList.add(new Circle(1, 2.5));
Circle c = (Circle) cityList.get(0); // 必須強轉
System.out.println(c.getArea());
10. 用 ArrayList 實現 Stack(棧)
- 數據區:
ArrayList 存對象,size 計數。
push:add(object) 尾部插入。
pop:get(size-1) 獲取 + remove(size-1) 刪除。
getTop:get(size-1) 僅獲取。
11. protected:子類可見、非子類不可見
| 修飾符 | 同類 | 同包非子類 | 異包子類 | 異包非子類 |
| public | ✓ | ✓ | ✓ | ✓ |
| protected | ✓ | ✓ | ✓ | ✗ |
| default | ✓ | ✓ | ✗ | ✗ |
| private | ✓ | ✗ | ✗ | ✗ |
12. final 禁止繼承與重寫
public final class FinalClass {} // 不可被繼承
public class Test {
public final void finalMethod() {} // 不可被重寫
}
final 類:葉子類,如 String、Integer。
final 方法:鎖定實現,編譯器可內聯優化。
final 變量:引用不可變(引用類型指向固定,對象內容可變)。