Java常见集合遍历方式
2023-03-31 11:01:58 时间
public static void main(String[] args) {
ListFor(2);
}
public static void ListFor(int a){
//测试list集合遍历(直接有四种遍历方式)
final ArrayList<Integer> integers = new ArrayList<>();
integers.add(1);
integers.add(2);
integers.add(3);
integers.add(4);
//测试set集合遍历(一般转换成数组进行遍历)
HashSet<String> strings = new HashSet<>();
strings.add("张三");
strings.add("123");
strings.add("张三");
//测试map集合遍历
HashMap<Integer, String> map = new HashMap<>();
map.put(1,"麻婆豆腐");
map.put(2,"红烧牛肉");
map.put(3,"狮子头");
//1.经典循坏遍历:效率最高遍历快,但是不适用于所有集合实用范围小
if (a==1) {
//list集合遍历
for (int i = 0; i < integers.size(); i++) {
System.out.println(integers.get(i));
}
//set集合遍历
Object[] objects = strings.toArray();
for (int i = 0; i < objects.length; i++) {
System.out.println(objects[i]);
}
}
//2.迭代器遍历:遍历时可以操作元素,但是相对于其他遍历方式效率比较慢
if (a==2){
//list集合遍历
Iterator<Integer> iterator = integers.iterator();
while (iterator.hasNext()){
System.out.print(iterator.next());
}
//set集合遍历
Iterator<String> iterator1 = strings.iterator();
while (iterator1.hasNext()){
System.out.println(iterator1.next());
}
//map集合遍历
Iterator<Map.Entry<Integer, String>> iterator2 = map.entrySet().iterator();
while (iterator2.hasNext()){
Map.Entry<Integer, String> entry = iterator2.next();
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
}
//3.加强for循环遍历:代码简洁,但是不能操作元素
if (a==3){
//list集合遍历
System.out.println("加强for循环遍历结果:");
for (Integer integer:integers){
System.out.println(integer);
}
//set集合遍历
for (String str:strings){
System.out.println(str);
}
//map集合遍历
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
}
//4.lambda表达式遍历
if (a==4){
System.out.println("lambda表达式遍历");
// JDK8之后才有的遍历
// integers.forEach(integer-> System.out.println(integer));
}
}
相关文章
- 深入探讨Java中的异常与错误处理
- 研究学习Kotlin的一些方法
- 数据显示Java热度持续下落,日子屈指可数?
- 2017年5月编程语言排行榜:Java与C语言优势正开始缩小
- Java多线程之内置锁与显示锁
- Java线程池的理论与实践
- 白话阿里巴巴Java开发手册(编程规约)
- 关于Java你不知道的十件事
- Java服务化系统线上应急和技术攻关,你必须掌握的Linux命令
- Java实现高斯模糊和图像的空间卷积
- Java阻塞队列实现原理分析
- NPM使用技巧
- Node.js对Java开发者而言是什么?
- Java反射机制应用实践
- 理解RxJava中的Single和Completable
- 2017年你不能错过的Java类库
- 大规模集群下的Hadoop NameNode
- 从源码解密Spark内存管理
- 2017年3月编程语言排行榜:Swift首次进入前十
- JVM热点技术:Java类的加载机制