前提・実現したいこと
以下のソースで行っていることは
TreeMapに格納されているkey値を順番に取り出し、valueが同じ文字列なら拡張for文から抜けるプログラムです。
以下のソースでは拡張for文を使用していますが、通常のfor文で同様の操作を行うことは可能でしょうか?
拡張for文を使用すればkey値(map)が簡単に用意できますが通常のfor文だとどうすればいいのかがわかりません。
package Sample; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.TreeMap; public class Sample_2 { private static List<List<String>> check = new ArrayList<>(); public static void main(String[] args) { Map<String,String> fruit = new TreeMap<>(); fruit.put("0001", "りんご"); fruit.put("0003", "めろん"); fruit.put("0004", "めろん"); fruit.put("0005", "すもも"); fruit.put("0002", "ばなな"); for(String map : fruit.keySet()) { List<String> Id = new ArrayList<>(); Id.add(fruit.get(map)); if(check.contains(Id)) { continue; } check.add(Id); System.out.println(map + ":" + fruit.get(map)); } } }
出力結果
0001:りんご 0002:ばなな 0003:めろん 0005:すもも
#試行錯誤中のソース
package Sample; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.TreeMap; public class Sample_4 { private static List<List<String>> check = new ArrayList<>(); public static void main(String[] args) { Map<String,String> fruit = new TreeMap<>(); fruit.put("0001", "りんご"); fruit.put("0003", "めろん"); fruit.put("0004", "めろん"); fruit.put("0005", "すもも"); fruit.put("0002", "ばなな"); for(int i = 0; i < fruit.size(); i++) { List<String> Id = new ArrayList<>(); Id.add(fruit.get(i)); if(check.contains(Id)) { continue; } check.add(Id); System.out.println(i + ":" + fruit.get(i)); } } }
回答2件
あなたの回答
tips
プレビュー