package com.github.sevntu.checkstyle.checks.coding; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.Map.Entry; public class InputMapIterationInForEachLoopCheck { Map<String, String> mMap = new HashMap<String, String>(); public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); Map<String, String> map2 = new HashMap<String, String>(); map.put("key1", "value1"); map.put("key2", "value2"); // ///////////////////////////// // FOR-EACH (ENCHANCED FOR) // // ///////////////////////////// { System.out.println("\nUsing map.keySet():"); for (String key : map.keySet()) { // WARNING HERE! System.out.println(key + " --> " + map.get(key)); } for (String key : map.keySet()) { // NO WARNING HERE! (because of // map2.getKey() used) System.out.println(key + " --> " + map2.get(key)); } System.out.println("\nUsing Map.Entry:"); for (Map.Entry<String, String> entry : map.entrySet()) { // NO // WARNING // HERE! for (Map.Entry<String, String> entry2 : map.entrySet()) { // NO // WARNING // HERE! System.out.println(entry.getKey() + " --> " + entry2.getValue()); System.out.println(entry2.getKey() + " --> " + entry.getValue()); } } for (Map.Entry<String, String> entry : map.entrySet()) { // WARNING // HERE! for (Map.Entry<String, String> entry2 : map2.entrySet()) { // WARNING // HERE! System.out.println(entry.getValue() + " --> "); System.out.println(entry2.getKey() + " --> "); } } for (String key : map.keySet()) { // NO WARNING HERE (till we // implement checking of method // calls) System.out.println(key + " --> " + executeGetMethod(key, map)); } for (Map.Entry<String, String> entry : map.entrySet()) { // NO // WARNING // HERE! System.out.println(entry.getKey() + " --> " + executeGetMethod(entry, map)); } // nested loops List<String> list = new LinkedList<String>(); for (String str : list) { // NO WARNING HERE! // list.get(0); for (String key : map.keySet()) { // WARNING HERE! System.out.println(key + " --> " + map.get(key)); } } for (Map.Entry<String, String> entry2 : map.entrySet()) { // WARNING // HERE! System.out.println(entry2.getKey() + " --> "); } } for (String key : map.keySet()) { // WARNING HERE! System.out.println(" --> " + map.get(key)); System.out.println(key); } for (String key : map.keySet()) { // WARNING HERE! System.out.println(" --> " + map.get(key)); } for (String value : map.values()) { // NO WARNING HERE! System.out.println(" --> " + value); } } private void testMethod() { Map<String, String> mMap = new HashMap<String, String>(); for (String key : mMap.keySet()) {//NO WARNING! System.out.println(" --> " + this.mMap.get(key)); System.out.println(key); } for (String key : this.mMap.keySet()) {//WARNING! System.out.println(" --> " + this.mMap.get(key)); System.out.println(key); } for (String key : this.mMap.keySet()) {//NO WARNING! System.out.println(" --> " + mMap.get(key)); System.out.println(key); } for (Map.Entry<String, String> entry : this.mMap.entrySet()) { // WARNING // HERE! System.out.println(entry.getValue() + " --> "); } } private static String executeGetMethod(Entry<String, String> entry, Map<String, String> map) { entry.getValue(); return null; } private static String executeGetMethod(String str, Map<String, String> map) { return map.get(str); } private static void someMethod(){ Map<String, String> map = null; Set<Entry<String, String>> entrySet = map.entrySet(); for (Iterator<Entry<String, String>> it = entrySet.iterator(); it.hasNext();) { Entry<String, String> entry = it.next(); String string = entry.getKey(); System.out.println(string); } } }