1
0

More than 1 year has passed since last update.

java forEach 備忘録

Last updated at Posted at 2023-02-12

配列でforEach

Arrays.stream(配列の変数名).forEach

import java.util.Arrays;
//省略
public void forEachTest() {
		String[] sampleArray ={"aaa", "bbb", "ccc"};
		Arrays.stream(sampleArray).forEach(s -> System.out.println(s));	
}

コンパイルエラー

forEachはvoid メソッドの為、値を戻すことができません

public Boolean forEachTest() {
    String[] sampleArray ={"aaa", "bbb", "ccc"};
	Arrays.stream(sampleArray).forEach(s -> {
		//↓コンパイルエラー:void メソッドは値を戻すことができません
		if(s=="aaa") {return true;}
	});
	return false;
}

外側のスコープで定義されたローカル変数※ result は final または実質的に final でなければなりません
→※メンバ変数にすればfinalでなくてもエラーにならない。

public String forEachTest() {
    String[] sampleArray ={"aaa", "bbb", "ccc"};
    String result="aaaを含まない";//メンバ変数にすればfinalでなくてもエラーにならない。

	Arrays.stream(sampleArray).forEach(s -> {
		//↓コンパイルエラー:外側のスコープで定義されたローカル変数 result は final または実質的に final でなければなりません
		if(s=="aaa") {result="aaaを含む";}
	});
	return result;
}

Java - Lambda、匿名クラスでfinal変数を参照する必要がある理由

スレッド

アトミック変数とは

拡張for文を使用

public Boolean forTest() {	
    String[] sampleArray ={"aaa", "bbb", "ccc"};
    String result="aaaを含まない";
	for(String s : sampleArray) {
		if(s=="aaa") {
			result "aaaを含む";
			return true;
		}
	}
	return false;
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0