package com.javarush.task.task22.task2208;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

/*
Формируем WHERE
*/

public class Solution {
    public static void main(String[] args) {
        Map<String, String> param = new HashMap<>();
        param.put("name", "Ivanov");
        param.put("country", "Ukraine");

        param.put("city", "Kiev");
        param.put("age", null);
        System.out.println(getQuery(param));
    }

    public static String getQuery(Map<String, String> params) {
        StringBuilder rez = new StringBuilder();

        for (String key : params.keySet()) {
            if (params.get(key) != null) {
                rez.append(key + " = '" + params.get(key) + "'");
                rez.append(" and ");
            }
        }
        rez.delete(rez.length() - 4, rez.length());
        return rez.toString();
    }
}
Вывод: country = 'Ukraine' and city = 'Kiev' and name = 'Ivanov' Не пойму почему вывод в другом порядке. Точнее скорее понимаю... думаю это связано с тем в как Хашмеп добавляет пары в память, в бакеты(но это не точно)). Но посмотрев правильный ответ не понял принципиальной разницы с моей версией кода...