diesen Code Siehe: (Dies funktioniert Code, aber ich weiß nicht wie zwei Linien so zu nutzen suchen, wie kann ich es besser machen)Java 8 Strom - oder Zustand
ItemDetails[] items = response.getDetailsList();
items = Arrays.stream(items).filter(x -> !x.getName().equalsIgnoreCase("acl1")).toArray(ItemDetails[]::new);
items = Arrays.stream(items).filter(x -> !x.getName().equalsIgnoreCase("acl2")).toArray(ItemDetails[]::new);
ich kann nicht verstehen wie man eine OR (|)
Bedingung innerhalb filter
verwendet, um zwei spezifische Elemente von List
zu entfernen, da es mir Kompilierungszeitfehler geben würde (in IDE) und ich oben zwei filters
wie oben benutze. Was könnte ich vermissen?
Dies ist, wie ich versuchte, OR
items = Arrays.stream(items).filter(x -> !x.getName().equalsIgnoreCase("acl1") ||
x -> !x.getName().equalsIgnoreCase("acl2")).toArray(ItemDetails[]::new);
=> IntelliJ beschweren (siehe oben) über diese
items = Arrays.stream(items).filter(x -> !x.getName().equalsIgnoreCase("acl1"") ||
x.getName().equalsIgnoreCase("acl2")).toArray(ItemDetails[]::new);
Funktioniert nicht zur Laufzeit würde zu verwenden (es filtert nicht)
Gesamter Code mit kommentiertem Code (den ich ausprobiert habe) als Referenz
public static void mapTest() {
AclDetailItem[] items = new AclDetailItem[3];
AclDetailItem item1 = new AclDetailItem();
item1.setAclName("acl1");
AclDetailItem item2 = new AclDetailItem();
item2.setAclName("acl2");
AclDetailItem item3 = new AclDetailItem();
item3.setAclName("acl3");
items[0] = item1;
items[1] = item2;
items[2] = item3;
System.out.println ("Before " + items.length);
items = Arrays.stream(items).filter(x -> !x.getAclName().equalsIgnoreCase("acl1")).toArray(ItemDetails[]::new);
items = Arrays.stream(items).filter(x -> !x.getAclName().equalsIgnoreCase("acl2")).toArray(ItemDetails[]::new);
System.out.println ("After " + items.length);
}
Welcher Fehler? Was hast du versucht? Das ist irgendwie wichtig. – Carcigenicate
Ich habe nicht downvote, aber das ist eine schlechte Frage. – Carcigenicate
items = Arrays.stream (Elemente) .filter (x ->! X.getName(). EqualsIgnoreCase ("redirect") || x ->! X.getName(). EqualsIgnoreCase ("Erfolg")). ToArray (ItemDetails [] :: neu); – Rockoder