当前位置: 首页 > news >正文

安卓基础(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);
}
http://www.xdnf.cn/news/191503.html

相关文章:

  • 测试—概念篇
  • 回归问题常用模型以及优缺点和使用场景
  • Uniapp:vite.config.js全局配置
  • V Rising 夜族崛起 [DLC 解锁] [Steam] [Windows SteamOS]
  • DBeaver CE 24.1.3 (Windows 64位) 详细安装教程
  • 基于SpringBoot的食物营养分析与推荐网站系统
  • 如何在idea中写spark程序。
  • leetcode11-盛水最多的容器
  • AG32VF407VG的VREFP是否可以输入2.5V的参考电压
  • React:封装一个评论回复组件
  • 用远程代理模式轻松实现远程服务调用,打开编程新大门
  • KMP算法
  • 英语五大基本句型
  • gradle-tasks.register(‘classesJar‘, Jar)解析
  • OpenCV计算机视觉实战(2)——环境搭建与OpenCV简介
  • 【含文档+PPT+源码】基于微信小程序的社交摄影约拍平台的设计与实现
  • 【学习笔记】机器学习(Machine Learning) | 第六周|过拟合问题
  • 人工智能-深度学习之多层感知器
  • Flutter 学习之旅 之 Flutter 和 Android 原生 实现数据交互的MethodChanel和EventChannel方式的简单整理
  • 优化 Flutter 应用启动:从冷启动到就绪仅需 2 秒
  • SQL知识点合集---第二弹
  • 阿里qiankun微服务搭建
  • (leetcode)力扣100 3.最长连续序列(哈希?排序)
  • 【JS事件循环机制event-loop】
  • Rmarkdown输出为pdf的方法与问题解决
  • 数字图像处理 -- 眼底图像血管分割方法
  • 后缀数组~
  • 聊一聊接口自动化测试的稳定性如何保障
  • 在 IDEA 中写 Spark 程序:从入门到实践
  • 反向代理、负载均衡与镜像流量:原理剖析、区别对比及 Nginx 配置实践