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]