JavaでPHPみたいな連想配列っぽいことできるのかなと思ってトライしたら、ソースコードの可読性が酷いことになってしまったけど、一応、実装できたのでソースコードを載せてみます。(残念なコードの例として)
Javaで連想配列っぽいもの
AssociativeArrayStyle.java
import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; public class StreamTraining { public static void main(String[] args) { List<Map<String, Object>> products = new ArrayList<>(); Map<String, Object> product; product = new LinkedHashMap<String, Object>(); product.put("made", "日本"); product.put("name", "こしひかり"); product.put("quantity", 10); product.put("value", 3800); products.add(product); product = new LinkedHashMap<String, Object>(); product.put("made", "アメリカ"); product.put("name", "カリフォルニア米"); product.put("quantity", 10); product.put("value", 2800); products.add(product); product = new LinkedHashMap<String, Object>(); product.put("made", "中国"); product.put("name", "黒米"); product.put("quantity", 10); product.put("value", 3200); products.add(product); product = new LinkedHashMap<String, Object>(); product.put("made", "バングラディッシュ"); product.put("name", "カリジュラ"); product.put("quantity", 10); product.put("value", 2400); products.add(product); product = new LinkedHashMap<String, Object>(); product.put("made", "スリランカ"); product.put("name", "レッドライス"); product.put("quantity", 10); product.put("value", 3000); products.add(product); product = new LinkedHashMap<String, Object>(); product.put("made", "スペイン"); product.put("name", "バレンシア・ライス"); product.put("quantity", 10); product.put("value", 3400); products.add(product); product = new LinkedHashMap<String, Object>(); product.put("made", "イタリア"); product.put("name", "カルナローリ"); product.put("quantity", 10); product.put("value", 4000); products.add(product); int[] i = {0}; int count = 0; StringBuilder builder = new StringBuilder(); for(Map<String, Object> map: products) { if(count == 0) { System.out.println("["); } map.entrySet() .stream() .forEach(listMap -> { if(i[0] == 0) { builder.append("["); } builder.append(listMap.getKey()); builder.append(": "); builder.append(listMap.getValue()); i[0]++; if(i[0] != map.size()) { builder.append(", "); } if(i[0] == map.size()) { builder.append("]"); System.out.print(builder); builder.setLength(0); i[0] = 0; } }); count++; if(count != products.size()) { System.out.println(","); } if(count == products.size()) { System.out.println("\n]"); } } } }
実行結果
Javaの復習していかねば...ですね。