13 · ArrayList 和 HashMap(⏸ 讲了一遍,太密,下次拆开重讲)
我的原话
- 3/13:「为什么 loginSystem.put 不能添加?」→「因为 int 不是 class」✅
- 3/13:「我没学过 map 的 if,感觉跟平常的不一样。」
ArrayList = 排队,按位置号取(从 0 数)
ArrayList<String> names = new ArrayList<>();
names.add("张三"); names.add("李四"); names.add("张三"); // 可重复
names.get(1) → 李四 names.size() → 3
HashMap = 带钥匙的柜子,按钥匙(key)取
HashMap<String, String> users = new HashMap<>();
users.put("zhangsan", "123456");
users.get("zhangsan") → 123456
users.get("wangwu") → null(没这把钥匙)
users.containsKey("zhangsan") → true
users.put("zhangsan", "x") // 同一把钥匙再放 = 覆盖
- map 的 if:
if (users.containsKey(username)) —— 条件是个返回 boolean 的方法,跟 if (age > 18) 一样
HashMap<String, int> → 错误:意外的类型(集合只放对象,写 Integer,第 15 点)
下次从这题开始(先只讲 HashMap 一个)
m.put("a", "苹果"); m.put("b", "香蕉"); m.put("a", "西瓜");
m.get("a")? m.size()?