安卓基础(HashMap和ArrayList)
在 Java 中,new ArrayList
用于创建一个动态数组对象。ArrayList
属于 Java 集合框架(Java Collections Framework),支持动态调整大小,比传统数组更灵活。
// 初始化一个空的字符串列表
ArrayList<String> list = new ArrayList<>();// 初始化一个包含初始元素的列表(Java 9+)
ArrayList<String> listWithElements = new ArrayList<>(List.of("苹果", "香蕉", "橘子"));
2. 添加元素
(1) 添加单个元素
list.add("苹果"); // ["苹果"]
list.add("香蕉"); // ["苹果", "香蕉"]
(2) 添加多个元素
list.addAll(List.of("橘子", "葡萄")); // ["苹果", "香蕉", "橘子", "葡萄"]
3. 访问元素
(1) 通过索引获取元素
String fruit = list.get(0); // "苹果"
(2) 遍历列表
// 使用 for 循环
for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));
}// 使用增强型 for 循环
for (String item : list) {System.out.println(item);
}// 使用迭代器
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {System.out.println(iterator.next());
}
4. 修改元素
list.set(1, "芒果"); // 将索引 1 的元素改为 "芒果"
// 结果:["苹果", "芒果", "橘子", "葡萄"]
5. 删除元素
(1) 按索引删除
list.remove(0); // 删除索引 0 的元素 → ["芒果", "橘子", "葡萄"]
(2) 按对象值删除
list.remove("橘子"); // 删除第一个匹配的元素 → ["芒果", "葡萄"]
在 Java 中,HashMap
是用于存储 键值对(Key-Value Pair) 的核心数据结构,类似于 Python 的字典。它基于哈希表实现,支持高效的插入、删除和查找操作(平均时间复杂度 O(1))。
// 空HashMap,键类型为 String,值类型为 Integer
HashMap<String, Integer> map = new HashMap<>();// 初始化并添加元素(Java 9+)
HashMap<String, Integer> initializedMap = new HashMap<>(Map.of("Apple", 10,"Banana", 5
));
2. 核心操作
(1) 添加/更新键值对
map.put("Apple", 10); // 添加键值对 {"Apple": 10}
map.put("Banana", 5); // 添加键值对 {"Banana": 5}
map.put("Apple", 15); // 更新 "Apple" 的值为 15
(2) 获取值
int appleCount = map.get("Apple"); // 返回 15
int orangeCount = map.getOrDefault("Orange", 0); // 键不存在时返回默认值 0
(3) 删除键值对
map.remove("Banana"); // 删除键 "Banana"
map.remove("Apple", 15); // 仅当键值匹配时删除
3. 遍历 HashMap
(1) 遍历所有键值对
for (Map.Entry<String, Integer> entry : map.entrySet()) {String key = entry.getKey();int value = entry.getValue();System.out.println(key + ": " + value);
}
(2) 遍历所有键
for (String key : map.keySet()) {System.out.println("Key: " + key);
}
(3) 遍历所有值
for (int value : map.values()) {System.out.println("Value: " + value);
}