Java常見集合遍歷方式

来源:https://www.cnblogs.com/hxbhxb/archive/2022/07/07/16455346.html
-Advertisement-
Play Games

public static void main(String[] args) { ListFor(2); } public static void ListFor(int a){ //測試list集合遍歷(直接有四種遍歷方式) final ArrayList<Integer> integers = ...


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));
}
}

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 如何實現表驅動編程用來增強可讀性、擴展性,同時提高系統運行效率 ...
  • 工作中,經常遇到這樣的問題,我明明在MySQL表上面加了索引,為什麼執行SQL查詢的時候卻沒有用到索引? 同一條SQL有時候查詢用到了索引,有時候卻沒用到索引,這是咋回事? 原因可能是索引失效了,失效的原因有以下幾種,看你有沒有踩過類似的坑? ...
  • ReentrantLock 0 關於ReentrantLock的文章其實寫過的,但當時寫的感覺不是太好,就給刪了,那為啥又要再寫一遍呢 最近閑著沒事想自己寫個鎖,然後整了幾天出來後不是跑丟線程就是和沒加鎖一樣,而且五六段就一個cas性能很差,感覺離大師寫的差十萬八千里 於是!我就想重新研究研究看看大 ...
  • 遞歸 遞歸就是自己調用自己! 遞歸的意思就是不停的調用自己,但是我們要知道的是我們的電腦資源是有限的,一般來說遞歸的層數不能太深。 遞歸主要包含兩個部分:遞歸頭和遞歸體 遞歸頭:什麼時候不調用自身方法。如果沒有,將陷入死迴圈。 遞歸體:什麼時候需要調用自身方法。 舉個例子: 我們用階乘來測試一下遞 ...
  • package cn.daheww.demo.juc.reentrylock; import sun.misc.Unsafe; import java.lang.reflect.Field; import java.util.concurrent.locks.LockSupport; /** * @ ...
  • 開始之前,pandas中DataFrame刪除對象可能存在幾種情況 1、刪除具體列 2、刪除具體行 3、刪除包含某些數值的行或者列 4、刪除包含某些字元、文字的行或者列 本文就針對這四種情況探討一下如何操作。 數據準備 模擬了一份股票交割的記錄。 In [1]: import pandas as p ...
  • 大家好,我是棧長。 大家都知道,程式員這個職業需要不斷總結,對我印象最深的一件事是,我曾經花了幾天時間解決了一個驚天 bug,而幾個月過後,這個 bug 再次發生了,我知道我之前解決過這個 bug,但再次發生時卻束手無策,怎麼想也想不出當時是怎麼解決的。。 相信大家都有遇到過這樣的場景吧? 所以,自 ...
  • 前言 嗨嘍,大家好呀~這裡是愛看美女的茜茜吶 一周工作,忙忙碌碌,身心疲憊,一到周末,倒頭大睡,懶得做飯,點個外賣。 今天我們要採集的網站呢,是國內知名的網上訂餐平臺~ 我做的是採集商家商品數據信息,你也可以採集另外數據哦~ 準備工作 下麵的儘量跟我保持一致哦~不然有可能會發生報錯 💕 環境使用: ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...