for-each循環的認識、定義、適用對象、舉例、局限性

文章目錄

    • 1. for-each的認識
    • 2. for-each的定義
    • 3. 哪些類型的對象可以適用For-Each?
    • 4. for-each的舉例
    • 5. for-each的局限性

1. for-each的認識

(1)for-each語句是Java中for-Index的一種加強,是Java 5帶來的新語法糖。
(2)for-each語句是在遍歷數組、集合的時候,foreach擁有不錯的性能。
(3)foreach是for語句的簡化,但是for-each并不能替代for循環。任何for-each都能改寫為for循環,反之不行。
(4)foreach不是java中的關鍵字。for-each的循環對象一般是一個集合,List、ArrayList、LinkedList、Vector、數組等。

2. for-each的定義

for(元素類型T 每次循環元素的名稱 : 循環對象){//對定義的名稱進行操作}

3. 哪些類型的對象可以適用For-Each?

(1)數組
(2)Collection類
(3)任何實現了Iterable接口的自定義類
(根據面向接口的思想,Deolin習慣把第三類對象稱之為“可迭代的”對象)

第一類,第二類在實際開發中經常用到,而第三類能夠適用For-Each的原因需要通過源碼來進行分析。

4. for-each的舉例

  1. for-each遍歷數組
	public static void main(String[] args) {String[] demo = {"a", "b", "c"};for (String t :demo ) {System.out.println(t);}}
  1. for-each遍歷List
  public static void main(String[] args) {List<String> list = new ArrayList();list.add("a");list.add("b");list.add("c");for(String str : list){System.out.println(str);}}

5. for-each的局限性

for-each雖然能遍歷數組或者集合,但是只能用來遍歷,無法在遍歷的過程中對數組或者集合進行修改,而for循環可以在遍歷的過程中對源數組或者集合進行修改。

1 數組

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class test{public static void main(String[] args) {String[] names = {"ming", "fei"};for (String name : names) {name = "xin";}//foreachSystem.out.println("foreach:"+Arrays.toString(names));//forfor (int i = 0; i < names.length; i++) {names[i] = "xin";}System.out.println("for:"+Arrays.toString(names));}}

2.集合

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class test {public static void main(String[] args) {List<String> names = new ArrayList<String>();names.add("ming");names.add("fei");//foreachfor(String name:names){name = "uzi";}System.out.println(Arrays.toString(names.toArray()));//forfor (int i = 0; i < names.size(); i++) {names.set(i,"uzi");}System.out.println(Arrays.toString(names.toArray()));}
}

求出一個文件的目錄名以及目錄總個數
實現代碼:

import java.io.File;public class Demo {public static void main(String[] args){File file=new File("D:/apache-maven1");String[] files=file.list();for(int i=0;i<files.length;i++){System.out.println(files[i]);}System.out.println(files.length);}
}

獲取本地IP地址

實現代碼如下:

import java.net.InetAddress;
import java.net.UnknownHostException;public class Demo {public static void main(String[] args) throws UnknownHostException {InetAddress host = InetAddress.getLocalHost();String ip =host.getHostAddress();System.out.println("本機ip地址:" + ip);}
}

自定義多個字符和數字,求出6位隨機數的組合
實現代碼:


import java.util.Random;public class Demo {static char[] chars = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};public static String getStr(int i){StringBuffer string =  new StringBuffer();Random random = new Random();while(i-->0){//獲取隨機生成的下標int x = random.nextInt(chars.length);string.append(chars[x]);}return string.toString();}public static void main(String[] args) throws Exception {int i=6;String string = getStr(i);System.out.println(string);}}

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

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

相關文章

C語言 實現登錄注冊功能

文章目錄加載動畫實驗結果圖實驗代碼加載動畫 #include<iostream> #include<windows.h> using namespace std;int main(){cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;cout.widen(65);co…

C語言小游戲 ——俄羅斯方塊

#include<stdio.h> #include<stdlib.h> #include<windows.h>//Sleep()函數的頭文件 #include<time.h> #include<conio.h> #define MOD 28 #define SIZE_N 19//控制邊框的高度 #define SIZE_M 12 //控制邊框的寬度 int a[100]{200,30,20};/…

C/C++課程設計 之職工管理系統

文章目錄 (一) 題目內容及簡介(二) 概要設計(三) 詳細設計(四) 實現代碼(五) 相關案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十案例十一(一) 題目內容及簡介 1.課題來源 課題名稱和來源,主要介紹為何選擇此題目來開展課程設計,此課題的開展能體現面向…

C++ 知識要點

1.類與對象 類是事物的抽象。類的對象就是類的具體化&#xff0c;實際化 2.C三大特性 繼承、封裝、多態 3.C父類與子類繼承過程中&#xff0c;子類的特點&#xff1f; 子類擁有父類的所有屬性和行為 子類就是一種特殊的父類 子類對象可以當作父類對象使用 子類中可以添加父類…

C/C++小游戲 ——貪吃蛇

文章目錄案例一案例二案例三案例四案例五案例六案例七案例八案例九案例一 #include <stdio.h>#include <windows.h>#include <conio.h>#include <time.h>//游戲窗口#define FrameX 4//游戲窗口左上角的X軸坐標#define FrameY 4//游戲窗口左上角的Y軸坐…

C/C++課程設計 新生入學管理系統(二)

文章目錄 案例十六案例十七案例十八案例十九案例二十案例二十一案例二十二案例二十三案例二十四案例二十五案例二十六案例二十七案例二十八案例十六 #include<iostream> #include<cstring> //strcpy,strcmp #

Java類名.方法和變量

文章目錄(1) 類名.方法(2) 變量(1) 類名.方法 要是類名直接調用的方法&#xff0c;那這個方法就是靜態的(static)方法&#xff0c;是不用new出新對象實例就可以直接調用的方法。看下面例子&#xff1a; class A {public static void Method1(int a, int b) {//方法體}public …

Java小案例(二) 用數組實現增刪查改排序

文章目錄案例一案例二案例三案例四案例五案例一 Student.Java package curd;public class Student {private String stuid;private String name;private int chinese;private int math;private int english;private int avg;private int sum;public int getAvg() {return avg;…

有趣的一行代碼

文章目錄愛心曼德勃羅集合打印99乘法表實現快速排序禪語漫畫迷宮愛心 print(\n.join([.join([(????????????[(x-y)%12]if((x*0.05)**2(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<0 else )for x in range(-30,30)])for y in range(15,-15,-1)]))效果圖&#xff1…

Python練習之 對文件進行創建,然后重命名文件最近進行文件刪除

import os os.mkdir("D:\\1815925603") context ("序號&#xff1a;1815925603\n""姓名&#xff1a;阿信\n""班級&#xff1a;18云計算2班\n") with open (D:\\1815925603\\file1.txt,a) as fp:fp.write(context)fp.seek(0, 0) with …

Java接口中的成員變量為什么必須是static ?

接口的含義 接口就是提供一種統一的協議, 而接口中的屬性也屬于協議中的成員。它們是公共的,靜態的,最終的常量。相當于全局常量。 在interface里面的變量都是public static final 的。 public static final int i10;等價于int i10;(可以省略掉一部分) //注意在聲明的時候要…

Java函數式編程和面向對象編程

文章目錄什么是函數式編程&#xff1f;什么是面向對象編程&#xff1f;函數式編程和面向對象編程的優缺點什么是函數式編程&#xff1f; 函數式編程的核心&#xff1a;在思考問題時&#xff0c;使用不可變對象和函數&#xff0c;函數將一個值經過處理&#xff0c;映射成另一個…

JDBC實現圖書管理小案例

文章目錄項目文件結構項目運行效果項目詳細代碼項目文件下載相關案例案例一案例二案例三案例四案例五案例六案例七案例八項目文件結構 項目運行效果 項目詳細代碼 JDBCUtils.java package jdbc;import java.sql.*; import com.mysql.jdbc.Driver;public class JDBCUtils {pri…

Java實現多線程售票

文章目錄Synchronized和Lock的區別是什么&#xff1f;案例一方法一 繼承Thread類方法二 實現Runnable接口案例二方法一 繼承Thread類方法二 實現Runnable接口案例三方法一 繼承Thread類方法二 實現Runnable接口案例四方法一 繼承Thread類方法二 實現Runnable接口案例五方法一 繼…

基于TCP原理,采用Socket通信技術,實現聊天室

文章目錄案例一案例二案例三案例四案例五相關案例案例一 Client.java package SocketCode;import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;import java.io.*; import …

HTML+CSS+JS 實現登錄注冊界面

文章目錄案例一 滑動樣式案例二 滑動樣式案例三 動態樣式案例四 普通樣式案例五 滑動樣式案例六 普通樣式具體怎么獲取呢&#xff1f;案例一 滑動樣式 login.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…

數據結構課程設計 迷宮問題

文章目錄一、 目的與要求二、 問題描述和求解方法三、 解題過程四、 實現源碼五、 相關案例案例一案例二一、 目的與要求 1、目的&#xff1a; 通過布置具有一定難度的實際程序設計項目&#xff0c;使學生進一步理解和掌握課堂上所學各種基本抽象數據類型的邏輯結構、存儲結構和…

html+css 小案例(一)

文章目錄點擊下載index.html <!DOCTYPE html> <html lang"ch"> <head><meta charset"UTF-8"><title>Demo_Test</title><link rel"stylesheet" href"css/Dec.css"> </head> <body…

HTML+CSS+JS 表白代碼

文章目錄案例一 愛你到天昏地暗案例二 帶有音樂的表白代碼案例三 帶有圖片旋轉的表白案例源碼案例一 愛你到天昏地暗 <html> <style type"text/css"> <!-- .STYLE1 {font-size: medium} --> </style> <center><br><br>…

Linux常用命令與基本操作、填空題、簡答題

文章目錄基本知識點基本操作敘述什么是shell?重啟虛擬機網絡分區查看當前進程查看主機名重啟關機查看IP地址文件搜索掛載查看網絡配置linux系統中Vi的三種模式磁盤分區查看硬盤信息df&#xff0c;fdisk&#xff0c;lsblk區別進程用戶用戶信息查看用戶密碼信息修改密碼添加用戶…