Auf Thema antworten

Ich denke, Du suchst das um die Farbe herauszufinden:

[spoiler][code=Java]import java.util.HashMap;

import java.util.function.Consumer;


public class Aw1 {

    private HashMap<Integer, String> kmap = new HashMap<>();


    void put_in_kmap() {

        if (kmap.isEmpty()) {

            kmap.put(1, "Karo Sieben");

            kmap.put(2, "Herz Sieben");

            kmap.put(3, "Pik Sieben");

            kmap.put(4, "Kreuz Sieben");

            kmap.put(5, "Karo Acht");

            kmap.put(6, "Herz Acht");

            kmap.put(7, "Pik Acht");

            kmap.put(8, "Kreuz Acht");

            // usw

        }

    }


    int get_color_i(int i) {

        return (i - 1) % 4;

    }


    void do_for_color_i(Consumer c1, Consumer c2, Consumer c3, Consumer c4) {

        for (int i = 1; i <= kmap.size(); i++) { // bei 1 anfangen

            switch (get_color_i(i)) {

            case 0:

                c1.accept(kmap.get(i));

                break;

            case 1:

                c2.accept(kmap.get(i));

                break;

            case 2:

                c3.accept(kmap.get(i));

                break;

            case 3:

                c4.accept(kmap.get(i));

                break;

            default:

                break;

            }

        }

    }


    String get_color_s(int i) {

        return kmap.get(i).split(" ")[0];

    }


    void do_for_color_s(Consumer c1, Consumer c2, Consumer c3, Consumer c4) {

        for (int i = 1; i <= kmap.size(); i++) {

            switch (get_color_s(i)) {

            case "Karo":

                c1.accept(kmap.get(i));

                break;

            case "Herz":

                c2.accept(kmap.get(i));

                break;

            case "Pik":

                c3.accept(kmap.get(i));

                break;

            case "Kreuz":

                c4.accept(kmap.get(i));

                break;

            default:

                break;

            }

        }

    }


    public static void main(String[] args) {

        Aw1 a = new Aw1();

        a.put_in_kmap();

        a.do_for_color_i((x) -> System.out.println(x + " hat die Farbe Karo"),

                (x) -> System.out.println(x + " hat die Farbe Herz"),

                (x) -> System.out.println(x + " hat die Farbe Pik"),

                (x) -> System.out.println(x + " hat die Farbe Kreuz"));

        a.do_for_color_s((x) -> System.out.println(x + " hat die Farbe Karo"),

                (x) -> System.out.println(x + " hat die Farbe Herz"),

                (x) -> System.out.println(x + " hat die Farbe Pik"),

                (x) -> System.out.println(x + " hat die Farbe Kreuz"));

    }

}[/code][/spoiler]



Oben