多語言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]}")

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/21885.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21885.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/21885.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大模型備案項目補貼政策一覽【保持更新】

大模型項目、AI類項目、大模型備案通過后等一籃子財政補貼政策 上海市 加快創新體系構建 1. 提升自主創新水平&#xff1a;對引領大模型發展或取得顛覆性突破的項目&#xff0c;最高給予1000萬元補貼支持。 2. 加強算力資源保障&#xff1a;實施算力伙伴計劃&#xff0c;對…

力扣174題動態規劃:地下城游戲(含模擬面試)

?????? 歡迎來到我的博客。希望您能在這里找到既有價值又有趣的內容&#xff0c;和我一起探索、學習和成長。歡迎評論區暢所欲言、享受知識的樂趣&#xff01; 推薦&#xff1a;數據分析螺絲釘的首頁 關注微信公眾號 數據分析螺絲釘 免費領取價值萬元的python/java/商業…

Java進階學習筆記36——算法

什么是算法&#xff1f; 解決某個實際問題的過程和方法。 1&#xff09;導航&#xff1b; 2&#xff09;滴滴打車&#xff1b; 3&#xff09;抖音&#xff1b; 不同的算法&#xff0c;效率高、性能好&#xff01; 在Java中&#xff0c;代碼已經幫我們寫好了&#xff0c;但為…

雪花算法詳解及源碼分析

雪花算法的簡介&#xff1a; 雪花算法用來實現全局唯一ID的業務主鍵&#xff0c;解決分庫分表之后主鍵的唯一性問題&#xff0c;所以就單從全局唯一性來說&#xff0c;其實有很多的解決方法&#xff0c;比如說UUID、數據庫的全局表的自增ID 但是在實際的開發過程中&#xff0…

離散點云擬合三維平面參數推導(基于最小二乘)

1、背景介紹 實際中&#xff0c;很多人工構造物是由平面結構構造而成&#xff0c;如下圖所示&#xff0c;為一典型的由多個平面組成的人工構筑物。因此&#xff0c;根據離散點擬合成平面&#xff0c;獲取擬合平面方程&#xff0c;是點云數據處理中非常常見的數據處理操作。 2、…

鴻蒙Ability Kit(程序框架服務)【ExtensionAbility組件】

ExtensionAbility組件 ExtensionAbility組件是基于特定場景&#xff08;例如服務卡片、輸入法等&#xff09;提供的應用組件&#xff0c;以便滿足更多的使用場景。 每一個具體場景對應一個[ExtensionAbilityType]&#xff0c;開發者只能使用&#xff08;包括實現和訪問&#…

WPS的excel表格設置了編輯權限,要怎么取消?

在日常生活和工作中&#xff0c;我們經常會使用WPS Office辦公軟件來處理各種文檔&#xff0c;其中WPS Excel表格是我們進行數據處理和分析的重要工具。為了保護表格中的數據不被隨意修改&#xff0c;我們有時會設置編輯權限。然而&#xff0c;隨著時間的推移或需求的變更&…

基于FPGA的SystemVerilog練習

文章目錄 一、認識SystemVerilogSystemVerilog的語言特性SystemVerilog的應用領域SystemVerilog的優勢SystemVerilog的未來發展方向 二、流水燈代碼流水燈部分testbench仿真文件 三、用systemVerilog實現超聲波測距計時器測距部分led部分數碼管部分采樣部分頂層文件引腳綁定效果…

魯教版七年級數學下冊-筆記

文章目錄 第七章 二元一次方程組1 二元一次方程組2 解二元一次方程組3 二元一次方程組的應用4 二元一次方程與一次函數5 三元一次方程組 第八章 平行線的有關證明1 定義與命題2 證明的必要性3 基本事實與定理4 平行線的判定定理5 平行限的性質定理6 三角形內角和定理 第九章 概…

dpdk uio整體分析及網卡加載

參考:https://zhuanlan.zhihu.com/p/477600165 一、Linux內核知識點 1. __attribute__ constructor/destructor (1)若函數被設定為constructor屬性,則該函數會在 main()函數執行之前被自動的執行。 (2)若函數被設定為destructor屬性,則該函數會在main()函數執…

開發和滲透偷懶利器utools

目錄 1.前言 1.1 工具簡介 1.2 核心特性 1.3 使用場景 1.4 安裝與使用 1.4.1 下載&#xff1a; 1.4.2 安裝&#xff1a; 1.4.3 配置&#xff1a; 1.4.4 插件市場&#xff1a; 2.懶狗插件介紹 基本介紹 2.1 數據模擬 2.2 隨機生成虛假數據 2.3 API市場 2.4 Hoppscot…

【十二】圖解mybatis日志模塊之設計模式

圖解mybatis日志模塊之設計模式 概述 最近經常在思考研發工程師初、中、高級工程師以及系統架構師各個級別的工程師有什么區別&#xff0c;隨著年齡增加我們的技術級別也在提升&#xff0c;但是很多人到了高級別反而更加憂慮&#xff0c;因為it行業35歲年齡是個坎這是行業里的共…

一文讀懂數據庫中的DB、DBMS、DBS、DBAS

目前數據庫的應用非常廣泛,幾乎各行各業都在直接或間接地與數據庫打交道,例如網上購物、銀行業務、鐵路購票和酒店住宿等。在實際應用中,數據庫、數據庫管理系統、數據庫系統和數據庫應用系統經常被統稱為數據庫,而實質上這4個概念是不一樣的,它們具有不同的定義和含義。下…

暴力數據結構之排序大雜燴

1. 冒泡排序&#xff1a;O(N^2) 邏輯解析&#xff1a; 冒泡排序并沒有什么實際意義&#xff0c;但是有教學意義&#xff0c;相信大部分小白在學習的初期第一個接觸的排序就是冒泡排序。那么接下來我們了解一下他的底層邏輯&#xff1a; 冒泡排序顧名思義就是將最大&#xff08…

PID——調參的步驟

第一步&#xff1a;確定比例增益P 確定比例增益 P 時&#xff0c;首先去掉 PID 的積分項和微分項&#xff0c;一般是令 Ti0、 Td0&#xff08;具體見PID 的參數設定說明&#xff09;&#xff0c;使PID 為純比例調節。 輸入設定為系統允許的最大值60%~70%&#xff0c;由0逐漸加…

idea項目maven下載依賴報錯

報錯&#xff1a; 1、Failure to find bad.robot:simple-excel:jar:1.0 in https://maven.aliyun.com/repository/public was cached in the local repository, resolution will not be reattempted until the update interval of aliyunmaven has elapsed or updates are forc…

python的while循環與for循環總結

前兩章中&#xff0c;我們跟著海綿寶寶的故事&#xff0c;掌握了 while 循環和 for 循環&#xff0c;這兩種不同的循環模式。while 循環和 for 循環都需要有 循環體 和 縮進&#xff0c;我們來復習一下它倆的語法規則&#xff1a; while 循環與 for 循環辨析 學到這里&#x…

Microsoft Edge TTS引擎實現文字轉語音小工具

Microsoft Edge TTS引擎實現文字轉語音小工具 ? 看了一篇文章關于使用Microsoft Edge TTS引擎進行文本轉語音的介紹。正好單位工作上經常用到音視頻的制作和轉換。但是文字變成音頻一直都是播音員口播實現。現在到了AI時代,各種功能強大的AI大模型已經應用到各個領域,大大提…

Docker鏡像導入導出

Docker鏡像導入導出 相關命令 docker export 容器id > x:/xx/xx.tar ##導出容器快照 docker import - x:/xx/xx.tar ##導入容器快照 docker save 鏡像id > x:/xx/xx.tar ##導出鏡像 docker load < x:/xx/xx.tar ##導入鏡像命令詳解 docker save …

在鯤鵬服務器搭建k8s高可用集群分享

高可用架構 本文采用kubeadm方式搭建k8s高可用集群&#xff0c;k8s高可用集群主要是對apiserver、etcd、controller-manager、scheduler做的高可用&#xff1b;高可用形式只要是為&#xff1a; 1. apiserver利用haproxykeepalived做的負載&#xff0c;多apiserver節點同時工作…