※当サイトの記事には、広告・プロモーションが含まれます。

JavaのListの要素を同一固定値で初期化するのにfor文は不要、ただしJava 8以上で

www.itmedia.co.jp

⇧ 民間に似たようなサイトが多くなったから閉鎖とは言うものの、文化庁が管理していたということに信頼性があったように思うのだけど、自分たちの管理してきた情報に文化的価値が無かったということなんだろうか?

JavaのListの要素を同一固定値で初期化するのにfor文は不要、ただしJava 8以上で

JavaのListの要素を同一固定値で初期化したかったのだけど、

hacknote.jp

ArrayListのすべての要素をある値で初期化したい時は、おとなしくfor文で回すなどする他ないようです。

ArrayListのすべての要素の初期化 - ハックノート

⇧ for文を使う以外に実装する方法が本当に無いのかを知りたくて、ググってたら、

qiita.com

⇧ for文しか方法が無いって言ってた人より1ヵ月前ぐらいにブログで公開されてた情報だと、for文なしで実装できるみたいですね。

ただし、Java 8以上を使ってる場合になりますが。

試してみました。

■/test-java/src/DefaultValueInitializedList.java

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class DefaultValueInitializedList {

	public static void main(String[] args) {
		
		List<BigDecimal> itemIdList = new ArrayList<>(Arrays.asList(
				BigDecimal.valueOf(100100, 2)
				,BigDecimal.valueOf(100200, 2)
				,BigDecimal.valueOf(100300, 2)
				,BigDecimal.valueOf(100400, 2)
				,BigDecimal.valueOf(100500, 2)
		)) ;
		
		// 
		String strId = "1001.00";
		if (Objects.isNull(strId)) {
			return;
		}
		BigDecimal bd =new BigDecimal(strId);
//		Double db = Double.valueOf(strId);
//		String[] strIdArr = strId.split("\\.");
//		List<String> strIdList = Arrays.asList(strIdArr);
//		int scale = strIdList.get(strIdList.size()-1).length();
//
//		String strIdExcludeDot = strIdList.stream().collect(Collectors.joining());
//		long longId = Double.valueOf(strIdExcludeDot).longValue();
//		BigDecimal id = BigDecimal.valueOf(longId, scale);
		List<BigDecimal> idList = Stream.generate(() -> bd)
				.limit(itemIdList.size())
				.collect(Collectors.toList());
		System.out.println(itemIdList);
		System.out.println(idList);
	}

}

⇧ で実行すると、

⇧ for文を使わなくても、複数要素のリストを要素の値が同一固定値で初期化できました。

このあたりは、ChatGPTないしは、Microsoft Bingに聞いちゃった方が検索時間の時短ができたような気がする。

ArrayListのすべての要素をある値で初期化したい時は、おとなしくfor文で回すなどする他ないようです。』って仰ってた人も、実装方法を検索しきれなかったのだと思うので、ChatGPTないしは、Microsoft BingなどのAIが利用できるようになった現在では、まずAIに確認してみるのが良いってことなんですかね?

まぁ、情報がWeb上に公開されてなかったらAIが情報を参照できないと思うので、そう言った意味では、試行錯誤した実体験を情報発信してくれてる方の情報ありきという気もする。

ただ、

mobile.twitter.com

Googleさんが情報操作してたりすることがあったりしたみたいなので、ChatGPTないしは、Microsoft BingなどのAIの回答の正当性を判断するのが難しい気がする...

存在しない情報を検討することはできないですし...

情報操作をするのは、Googleさんだけに限ったことではないと思いますけど、企業の規模に関わらず真摯な対応をして欲しいところですかね...

毎度モヤモヤ感が半端ない...

今回はこのへんで。