このストリームを使用して、毎回異なる結果をマッピングするために、変数cをストリーム内に再割り当てしようとしています。私はストリームの外でforeachループを使用しようとしましたが、ストリーム内で発生しないので無駄になったことに気付きました。Javaマッピングストリーム変数の再割り当て
私はこれをやろうとしています。
List<Hills> hills = readHills();
Set<String> countys = new HashSet<>();
for (Hills s: hills) {
countys.add(s.getCounty());
String[] c = new String[0];
c[1] = s.getCounty();
System.out.println("### County: " + c[0]);
hills.stream()
.filter(Hill -> !Hill.getCounty().equals(c[0]))
.map((Hills Hill) -> Hill.getName() + " " + Hill.getHeight())
.forEach(Hill ->{
System.out.println(Hill);
c[0] = Hill.getCounty(); // This is what I am trying to do
});
}
配列はゼロインデックスから始まります。 – Omore
あなたのコードはさらに悪くなりました。配列の長さはゼロですが、その後すぐに2番目の配列要素にアクセスしようとしています。とにかく、すべてのアクセスは失敗します。 – Holger