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

多语言for循环遍历总结

多语言for循环遍历总结

工作中经常需要遍历对象,但不同编程语言之间存在一些细微差别。为了便于比较和参考,这里对一些常用的遍历方法进行了总结。

JAVA

数组遍历

@Test
void ArrayForTest() {String[] array = {"刘备","关羽", "张飞"};// 第一种方式:下标遍历for (int i=0; i<array.length; i++) {System.out.println(array[i]);}// 第二种方式:foreach遍历System.out.println("--------------------");for (String value : array) {System.out.println(value);}// 第三种方式:转成list遍历System.out.println("--------------------");Arrays.asList(array).forEach(e -> System.out.println(e));// 第四种方式:转成流使用stream遍历System.out.println("--------------------");Arrays.stream(array).forEach(System.out::println);
}

列表遍历

@Test
void ListForTest() {List<String> list = Arrays.asList("刘备", "关羽", "张飞");// 第一种方式:下标遍历for (int i=0; i<list.size(); i++) {System.out.println(list.get(i));}// 第二种方式:foreach遍历System.out.println("--------------------");for (String value : list) {System.out.println(value);}// 第三种方式:forEach遍历System.out.println("--------------------");list.forEach(System.out::println);// 第三种方式:stream流遍历System.out.println("--------------------");list.stream().forEach(System.out::println);
}

map遍历

@Test
void mapForTest() {Map<String, Integer> map = new HashMap<>();map.put("刘备",1);map.put("关羽",2);map.put("张飞",3);System.out.println(map.entrySet());// 使用map.entrySet遍历---最常见和最常用的遍历方式for (Map.Entry<String, Integer> entry : map.entrySet()) {String key = entry.getKey();Integer value = entry.getValue();// 处理键值对System.out.println(key+"--"+value);}System.out.println("-------------");// Java 8 的 Lambda 表达式 -----这个感觉很方便,之后在java8环境用这种方式遍历map.forEach((key, value) -> {// 处理键值对System.out.println(key + "--" +value);});System.out.println("-------------");// 遍历 keySet() 或 values()for (String key : map.keySet()) {System.out.print(key + " ");}System.out.println();for (Integer value : map.values()) {// 处理值System.out.print(value + " ");}System.out.println();System.out.println("-------------");// stream流遍历map.entrySet().stream().forEach(entry -> {String key = entry.getKey();Integer value = entry.getValue();// 处理键值对System.out.println(key+"--"+value);});
}

Javascript

这边注意的几个点是js中使用常用的for循环中,有两种常用的循环:for in循环和for of 循环:

for in :是为了遍历对象而创建的
作用:可以以任意顺序遍历一个对象的除Symbol以外的可枚举属性。
语法:for (variable in object){}

这里注意不要使用for in来遍历数组,会遍历数组的索引,而不是具体的元素

for of :是为了遍历迭代器而创建的
作用:在可迭代对象上创建一个迭代循环,遍历要迭代的数据。无法遍历非迭代对象。
内置可迭代对象有:Array,Map,Set,String,TypedArray
语法:for (variable of iterable){}

简单来说:for…in 遍历索引,而 for…of 循环遍历值

数组遍历

const myArray = [1, 2, 3, 4, 5];// 最普通的for循环
for (let i = 0; i < myArray.length; i++) {console.log(myArray[i]);
}// 使用数组内置的forEach方式
myArray.forEach((element) => {console.log(element);
});// 使用 for...of 循环
for (const element of myArray) {console.log(element);
}// 使用 map 方法: map 方法创建一个新数组,通过对原始数组的每个元素应用一个函数来实现。
const doubledArray = myArray.map((element) => element * 2);
console.log(doubledArray);// 使用 filter 方法:filter 方法创建一个新数组,其中包含满足指定条件的原始数组的元素。
const evenNumbers = myArray.filter((element) => element % 2 === 0);
console.log(evenNumbers);

Magic-api

magic-api中数组的for循环用的就是in,和js有所不同

循环集合

import 'java.lang.System' as System;
var list = [1,2,3];
for(index,item in list){    //如果不需要index,也可以写成for(item in list)System.out.println(index + ":" + item);
}

循环指定次数

var sum = 0;
for(value in range(0,100)){    //包括0包括100sum = sum + value; //不支持+= -= *= /= ++ -- 这种运算
}
return sum;
/*
结果:5050
*/

循环map

import 'java.lang.System' as System;
var map = {key1 : 123,key2 : 456
};
for(key,value in map){    //如果不需要key,也可以写成for(value in map)System.out.println(key + ":" + value);
}
/*
结果:
key1:123
key2:456
*/

Python

常用的两种遍历方式

cities = ["Guangzhou", "Beijing", "Shanghai", "Nanjing"]
for city in cities:print(f"当前城市: {city}")fruits = ["banana", "apple", "mango"]
for index in range(len(fruits)):print(f"当前水果: {fruits[index]}")

相关文章:

  • 2020长安杯
  • Java赋值运算符的使用技巧,你Get了吗?
  • 【Unity Shader入门精要 第12章】屏幕后处理效果(二)
  • Attention Is All You Need--论文笔记
  • C++ Primer Chapter 1 Getting Started
  • OceanBase开发者大会实录-李楠:4条路径+6大方案,关键业务系统数据库的升级之路
  • 多线程知识-11
  • 微信小程序登录接口
  • Prop 和 State 有什么区别?
  • AGP8+ android.useNewApkCreator‘ is deprecated 打包失败
  • Java进阶学习笔记36——算法
  • 浅谈IDEA中项目如何进行热部署
  • 实战16:基于apriori关联挖掘FP-growth算法挖掘关联规则的手机销售分析-代码+数据
  • 秦岚:结了婚就不要离婚了
  • idea项目maven下载依赖报错
  • Django 博客开发教程 8 - 博客文章详情页
  • Git 使用集
  • Github访问慢解决办法
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Sass 快速入门教程
  • Spring Boot快速入门(一):Hello Spring Boot
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 我感觉这是史上最牛的防sql注入方法类
  • 译自由幺半群
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # Java NIO(一)FileChannel
  • #nginx配置案例
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (Qt) 默认QtWidget应用包含什么?
  • (补充)IDEA项目结构
  • (二)WCF的Binding模型
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (四)js前端开发中设计模式之工厂方法模式
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)Unity3DUnity3D在android下调试
  • (转)为C# Windows服务添加安装程序
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • (状压dp)uva 10817 Headmaster's Headache
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core 成都线下面基会拉开序幕
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET命名规范和开发约定
  • .NET中的十进制浮点类型,徐汇区网站设计
  • 。Net下Windows服务程序开发疑惑
  • :class的用法及应用
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @RequestBody与@RequestParam:Spring MVC中的参数接收差异解析