From 9b33bed06cd7a0b17b001d994e976e69ad6bc250 Mon Sep 17 00:00:00 2001 From: Willem Date: Wed, 4 Feb 2026 20:34:20 +0100 Subject: [PATCH] JPP: Played with book and removed native array from ladder interface --- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/TTꞱꞱᖟGateway.java | 4 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/LegoBrickMould抽.java | 6 ++ .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000465ˣᴸ.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000861ˣᴸ.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000EA6ˣᴸ.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x0013B0ˣᴸ.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x001443ˣᴸ.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x0015F9ˣᴸ.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x009F33ˣᴸ.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x024B97ˣᴸ.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V015Reptet.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V030Pegal.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V045Metat.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V120Bental.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V150Powic.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V165Roket.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V225Matot.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V273Korcet.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V720Beximal.java | 2 +- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V750Poofy.java | 2 +- .../ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ArrayLadderOpen.java | 11 --- .../src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/Book.java | 96 +++++++++++++++++++ .../main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/Ladder.java | 16 +--- .../java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/LadderOpen.java | 9 +- .../main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/YarnOpen.java | 6 +- .../java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ᣗᐤᣖᓫ/Rope.java | 1 + .../ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ᣗᐤᣖᓫ/RopeIterable.java | 2 +- .../test/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/YarnTest.java | 65 +++++++++++++ 28 files changed, 198 insertions(+), 54 deletions(-) create mode 100644 nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/Book.java create mode 100644 nx01-jpp0-collections2/src/test/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/YarnTest.java diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/TTꞱꞱᖟGateway.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/TTꞱꞱᖟGateway.java index fd69586..08d3125 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/TTꞱꞱᖟGateway.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/TTꞱꞱᖟGateway.java @@ -288,7 +288,7 @@ public enum TTꞱꞱᖟGateway implements BãßᛗᚢᛗᛗᛉVū́ǘrChaliceEnu return IDENDITY.zerdinalSpaceBoundary(); } static public BoneZerdinalBase1[] values() { - return IDENDITY.zerdinalSpaceRodsToLadder().toArray(new BoneZerdinalBase1[] {}); + return IDENDITY.zerdinalSpaceRodsToLadder().stream().toList().toArray(new BoneZerdinalBase1[] {}); } } @Terminator注(slices = 2) @@ -304,7 +304,7 @@ public enum TTꞱꞱᖟGateway implements BãßᛗᚢᛗᛗᛉVū́ǘrChaliceEnu return IDENDITY.zerdinalSpaceBoundary(); } static public BoneZerdinalBase2[] values() { - return IDENDITY.zerdinalSpaceRodsToLadder().toArray(new BoneZerdinalBase2[] {}); + return IDENDITY.zerdinalSpaceRodsToLadder().stream().toList().toArray(new BoneZerdinalBase2[] {}); } } diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/LegoBrickMould抽.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/LegoBrickMould抽.java index 3c0e0de..32ecb22 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/LegoBrickMould抽.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/LegoBrickMould抽.java @@ -28,6 +28,7 @@ package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᒢᓫᑊᐣᑊ; import java.util.function.Consumer; +import java.util.function.Function; import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒢObject抽; import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᐦ.Terminator𓄯; @@ -41,6 +42,11 @@ public abstract class LegoBrickMould抽 legoBuilder, JediTempleBase8Rope values) { + this((T[]) size.zerdinalSpaceRodsToLadder(_ -> legoBuilder.apply(values)).stream().toList().toArray()); + } + public LegoBrickMould抽(/*P terminator,*/ T[] args) { // if (args.length != terminator.teŀráàmGroote()) { // throw new IllegalArgumentException("Wong size: " + args.length); diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000465ˣᴸ.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000465ˣᴸ.java index 232a42b..918eca7 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000465ˣᴸ.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000465ˣᴸ.java @@ -49,7 +49,7 @@ public final class V0x000465ˣᴸ extends LegoBrickMould抽 } public V0x000465ˣᴸ(JediTempleBase8Rope values) { - super(T005ᖟ.亞.zerdinalSpaceRodsToLadder(v -> new V225Matot(values)).toArray(new V225Matot[] {})); + super(T005ᖟ.亞, V225Matot::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000861ˣᴸ.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000861ˣᴸ.java index 5b74049..6a224ed 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000861ˣᴸ.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000861ˣᴸ.java @@ -49,7 +49,7 @@ public final class V0x000861ˣᴸ extends LegoBrickMould抽 } public V0x000861ˣᴸ(JediTempleBase8Rope values) { - super(T013ᖟ.亞.zerdinalSpaceRodsToLadder(v -> new V165Roket(values)).toArray(new V165Roket[] {})); + super(T013ᖟ.亞, V165Roket::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000EA6ˣᴸ.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000EA6ˣᴸ.java index 8121324..bf6da1c 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000EA6ˣᴸ.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x000EA6ˣᴸ.java @@ -49,7 +49,7 @@ public final class V0x000EA6ˣᴸ extends LegoBrickMould抽 } public V0x000EA6ˣᴸ(JediTempleBase8Rope values) { - super(T005ᖟ.亞.zerdinalSpaceRodsToLadder(v -> new V750Poofy(values)).toArray(new V750Poofy[] {})); + super(T005ᖟ.亞, V750Poofy::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x0013B0ˣᴸ.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x0013B0ˣᴸ.java index 398e7e2..d3621fb 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x0013B0ˣᴸ.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x0013B0ˣᴸ.java @@ -49,7 +49,7 @@ public final class V0x0013B0ˣᴸ extends LegoBrickMould抽 new V720Beximal(values)).toArray(new V720Beximal[] {})); + super(T007ᖟ.亞, V720Beximal::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x001443ˣᴸ.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x001443ˣᴸ.java index eedf66c..f0d6e49 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x001443ˣᴸ.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x001443ˣᴸ.java @@ -49,7 +49,7 @@ public final class V0x001443ˣᴸ extends LegoBrickMould抽 } public V0x001443ˣᴸ(JediTempleBase8Rope values) { - super(T019ᖟ.亞.zerdinalSpaceRodsToLadder(v -> new V273Korcet(values)).toArray(new V273Korcet[] {})); + super(T019ᖟ.亞, V273Korcet::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x0015F9ˣᴸ.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x0015F9ˣᴸ.java index d88821f..13aaba8 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x0015F9ˣᴸ.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x0015F9ˣᴸ.java @@ -48,7 +48,7 @@ public final class V0x0015F9ˣᴸ extends LegoBrickMould抽 new V0x000465ˣᴸ(values)).toArray(new V0x000465ˣᴸ[] {})); + super(T005ᖟ.亞, V0x000465ˣᴸ::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x009F33ˣᴸ.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x009F33ˣᴸ.java index 1094b41..71e4bc0 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x009F33ˣᴸ.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x009F33ˣᴸ.java @@ -48,7 +48,7 @@ public final class V0x009F33ˣᴸ extends LegoBrickMould抽 new V0x000861ˣᴸ(values)).toArray(new V0x000861ˣᴸ[] {})); + super(T019ᖟ.亞, V0x000861ˣᴸ::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x024B97ˣᴸ.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x024B97ˣᴸ.java index 6040399..f64b3ce 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x024B97ˣᴸ.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᒄᓫᣔᐪᑋᔆᐪᣔᣗ/V0x024B97ˣᴸ.java @@ -48,7 +48,7 @@ public final class V0x024B97ˣᴸ extends LegoBrickMould抽 new V0x001443ˣᴸ(values)).toArray(new V0x001443ˣᴸ[] {})); + super(T029ᖟ.亞, V0x001443ˣᴸ::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V015Reptet.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V015Reptet.java index 5f9b684..fa2fe6f 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V015Reptet.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V015Reptet.java @@ -50,7 +50,7 @@ public final class V015Reptet extends LegoBrickMould抽 implem } public V015Reptet(JediTempleBase8Rope values) { - super(T005ᖟ.亞.zerdinalSpaceRodsToLadder(v -> values.next()).toArray(new T008ᖟ[] {})); + super(T005ᖟ.亞, v -> v.next(), values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V030Pegal.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V030Pegal.java index 77e2285..420b7ef 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V030Pegal.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V030Pegal.java @@ -22,7 +22,7 @@ public final class V030Pegal extends LegoBrickMould抽 impleme } public V030Pegal(JediTempleBase8Rope values) { - super(T005ᖟ.亞.zerdinalSpaceRodsToLadder(v -> T064ᖟ.valueOf(values)).toArray(new T064ᖟ[] {})); + super(T005ᖟ.亞, v -> T064ᖟ.valueOf(v), values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V045Metat.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V045Metat.java index cdcbe2c..10b8158 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V045Metat.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V045Metat.java @@ -49,7 +49,7 @@ public final class V045Metat extends LegoBrickMould抽 impleme } public V045Metat(JediTempleBase8Rope values) { - super(T005ᖟ.亞.zerdinalSpaceRodsToLadder(v -> T512ᖟ.valueOf(values)).toArray(new T512ᖟ[] {})); + super(T005ᖟ.亞, v -> T512ᖟ.valueOf(v), values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V120Bental.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V120Bental.java index 2efdc2f..1d5713e 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V120Bental.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V120Bental.java @@ -48,7 +48,7 @@ public final class V120Bental extends LegoBrickMould抽 impl } public V120Bental(JediTempleBase8Rope values) { - super(T005ᖟ.亞.zerdinalSpaceRodsToLadder(v -> new V024Beger(values)).toArray(new V024Beger[] {})); + super(T005ᖟ.亞, V024Beger::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V150Powic.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V150Powic.java index f1a14f2..cd57ad9 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V150Powic.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V150Powic.java @@ -21,7 +21,7 @@ public final class V150Powic extends LegoBrickMould抽 imple } public V150Powic(JediTempleBase8Rope values) { - super(T005ᖟ.亞.zerdinalSpaceRodsToLadder(v -> new V030Pegal(values)).toArray(new V030Pegal[] {})); + super(T005ᖟ.亞, V030Pegal::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V165Roket.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V165Roket.java index ba2250f..f271523 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V165Roket.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V165Roket.java @@ -48,7 +48,7 @@ public final class V165Roket extends LegoBrickMould抽 impl } public V165Roket(JediTempleBase8Rope values) { - super(T011ᖟ.亞.zerdinalSpaceRodsToLadder(v -> new V015Reptet(values)).toArray(new V015Reptet[] {})); + super(T011ᖟ.亞, V015Reptet::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V225Matot.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V225Matot.java index de22ea3..116b5d5 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V225Matot.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V225Matot.java @@ -48,7 +48,7 @@ public final class V225Matot extends LegoBrickMould抽 imple } public V225Matot(JediTempleBase8Rope values) { - super(T005ᖟ.亞.zerdinalSpaceRodsToLadder(v -> new V045Metat(values)).toArray(new V045Metat[] {})); + super(T005ᖟ.亞, V045Metat::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V273Korcet.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V273Korcet.java index b5cc74c..6df6c28 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V273Korcet.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V273Korcet.java @@ -48,7 +48,7 @@ public final class V273Korcet extends LegoBrickMould抽 impl } public V273Korcet(JediTempleBase8Rope values) { - super(T013ᖟ.亞.zerdinalSpaceRodsToLadder(v -> new V021Koeye(values)).toArray(new V021Koeye[] {})); + super(T013ᖟ.亞, V021Koeye::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V720Beximal.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V720Beximal.java index d53b022..fc4d855 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V720Beximal.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V720Beximal.java @@ -48,7 +48,7 @@ public final class V720Beximal extends LegoBrickMould抽 im } public V720Beximal(JediTempleBase8Rope values) { - super(T006ᖟ.亞.zerdinalSpaceRodsToLadder(v -> new V120Bental(values)).toArray(new V120Bental[] {})); + super(T006ᖟ.亞, V120Bental::new, values); } @Override diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V750Poofy.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V750Poofy.java index af834a8..f54c92e 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V750Poofy.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V750Poofy.java @@ -21,7 +21,7 @@ public final class V750Poofy extends LegoBrickMould抽 imple } public V750Poofy(JediTempleBase8Rope values) { - super(T005ᖟ.亞.zerdinalSpaceRodsToLadder(v -> new V150Powic(values)).toArray(new V150Powic[] {})); + super(T005ᖟ.亞, V150Powic::new, values); } @Override diff --git a/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ArrayLadderOpen.java b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ArrayLadderOpen.java index 7ef0b72..734e689 100644 --- a/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ArrayLadderOpen.java +++ b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ArrayLadderOpen.java @@ -34,7 +34,6 @@ import java.util.Spliterator; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.function.UnaryOperator; -import java.util.stream.Collector; import java.util.stream.Stream; import ᒢᣘᐧᐧ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ.ᣗᐤᣖᓫ.Rope; @@ -159,16 +158,6 @@ public class ArrayLadderOpen implements LadderOpen,RopeIterable { return new ArrayLadderOpen<>(data.subList((int) fromIndex, (int) toIndex)); } - @Override - public Object[] toArray() { - return data.toArray(); - } - - @Override - public T[] toArray(T[] arr) { - return data.toArray(arr); - } - @Override public long size() { return data.size(); diff --git a/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/Book.java b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/Book.java new file mode 100644 index 0000000..70458ce --- /dev/null +++ b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/Book.java @@ -0,0 +1,96 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package ᒢᣘᐧᐧ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ; + +import ᒢᣘᐧᐧ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ.ᣗᐤᣖᓫ.Rope; + +/// In a book you write down what to store. +/// +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天s +public interface Book { + + long size(); + boolean isEmpty(); + boolean containsKey(Object key); + //boolean containsValue(Object value); // rm slow + V get(Object key); + + // BookOpen + V put(K key, V value); // rm V + V remove(Object key); // rm V + void putAll(Book m); + void clear(); + + //BeadYarn keySet(); // rm mem limit + Rope keyRope(); + + //Yarn values(); // rm mem limit + Rope valueRope(); + + //BeadYarn> entrySet();// rm mem limit + //Rope> entryRope(); + + // ---------- defaults (only use ~4) + + /* + @Override + default V getOrDefault(Object key, V defaultValue) { + } + @Override + default void forEach(BiConsumer action) { + } + @Override + default void replaceAll(BiFunction function) { + } + @Override + default V putIfAbsent(K key, V value) { + } + @Override + default boolean remove(Object key, Object value) { + } + @Override + default boolean replace(K key, V oldValue, V newValue) { + } + @Override + default V replace(K key, V value) { + } + @Override + default V computeIfAbsent(K key, Function mappingFunction) { + } + @Override + default V computeIfPresent(K key, BiFunction remappingFunction) { + } + @Override + default V compute(K key, BiFunction remappingFunction) { + } + @Override + default V merge(K key, V value, BiFunction remappingFunction) { + } + */ +} diff --git a/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/Ladder.java b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/Ladder.java index 5985570..7c05722 100644 --- a/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/Ladder.java +++ b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/Ladder.java @@ -27,8 +27,6 @@ package ᒢᣘᐧᐧ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ; -import java.util.stream.Collectors; - import ᒢᣘᐧᐧ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ.ᙆᓫᣗᒄᑊᣕᣔᒻ.Zerdinal; import ᒢᣘᐧᐧ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ.ᣗᐤᣖᓫ.RopeLadder; @@ -83,7 +81,7 @@ public interface Ladder extends Yarn { default RopeLadder ropeLadder(long index) { // TODO: fix cast - return RopeLadder.wrapᴼᶠ(stream().collect(Collectors.toList()).listIterator((int) index)); + return RopeLadder.wrapᴼᶠ(stream().toList().listIterator((int) index)); } default Ladder subLadder(Zerdinal fromIndex, Zerdinal toIndex) { @@ -92,16 +90,6 @@ public interface Ladder extends Yarn { default Ladder subLadder(long fromIndex, long toIndex) { // TODO: fix cast - return new ArrayLadderOpen<>(stream().collect(Collectors.toList()).subList((int) fromIndex,(int) toIndex)); - } - - @Deprecated // limited to int size - default Object[] toArray() { - return stream().collect(Collectors.toList()).toArray(); - } - - @Deprecated // limited to int size - default T[] toArray(T[] arr) { - return stream().collect(Collectors.toList()).toArray(arr); + return new ArrayLadderOpen<>(stream().toList().subList((int) fromIndex,(int) toIndex)); } } diff --git a/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/LadderOpen.java b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/LadderOpen.java index dd78be5..a1f92e0 100644 --- a/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/LadderOpen.java +++ b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/LadderOpen.java @@ -32,7 +32,6 @@ import java.util.Comparator; import java.util.Objects; import java.util.function.UnaryOperator; import java.util.stream.Collector; -import java.util.stream.Collectors; import ᒢᣘᐧᐧ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ.ᙆᓫᣗᒄᑊᣕᣔᒻ.Zerdinal; import ᒢᣘᐧᐧ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ.ᣗᐤᣖᓫ.Rope; @@ -86,7 +85,7 @@ public interface LadderOpen extends Ladder, YarnOpen { @SuppressWarnings({ "unchecked", "rawtypes" }) default void sort(Comparator c) { // TODO: int limited - Object[] arr = toArray(); + Object[] arr = stream().toList().toArray(); Arrays.sort(arr, (Comparator) c); for (int i = 0; i < arr.length; i++) { set(i, (E) arr[i]); @@ -103,7 +102,7 @@ public interface LadderOpen extends Ladder, YarnOpen { default RopeLadderOpen ropeLadderOpen(long index) { // TODO: fix cast - return RopeLadderOpen.wrapᴼᶠ(stream().collect(Collectors.toList()).listIterator((int) index)); + return RopeLadderOpen.wrapᴼᶠ(stream().toList().listIterator((int) index)); } default LadderOpen subLadderOpen(Zerdinal fromIndex, Zerdinal toIndex) { @@ -111,8 +110,8 @@ public interface LadderOpen extends Ladder, YarnOpen { } default LadderOpen subLadderOpen(long fromIndex, long toIndex) { - //return new ArrayLadderOpen<>(stream().collect(Collectors.toList()).subList((int) fromIndex, (int) toIndex)); - return stream().skip(fromIndex).limit(toIndex).collect(LadderOpen.ofCollector()); + //return new ArrayLadderOpen<>(stream().toList().subList((int) fromIndex, (int) toIndex)); + return stream().skip(fromIndex).limit(toIndex - fromIndex).collect(LadderOpen.ofCollector()); } //TODO: move? diff --git a/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/YarnOpen.java b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/YarnOpen.java index 9e7d011..56c33dc 100644 --- a/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/YarnOpen.java +++ b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/YarnOpen.java @@ -41,10 +41,10 @@ import ᒢᣘᐧᐧ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ.ᣗᐤᣖᓫ.Rope; /// @version ©Δ∞ 仙上主天 public interface YarnOpen extends Yarn, AppenderOpen { - boolean remove(Object obj); + boolean remove(Object obj); // RM result boolean default void clear() { - stream().collect(Collectors.toList()).forEach(v -> remove(v)); + stream().toList().forEach(v -> remove(v)); } default boolean removeAll(Yarn yarn) { @@ -67,7 +67,7 @@ public interface YarnOpen extends Yarn, AppenderOpen { default boolean retainAll(Yarn yarn) { Objects.requireNonNull(yarn); boolean result = false; - for (E e : stream().collect(Collectors.toList())) { + for (E e : toCollectionOpen()) { if (!yarn.contains(e)) { remove(e); result = true; diff --git a/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ᣗᐤᣖᓫ/Rope.java b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ᣗᐤᣖᓫ/Rope.java index 213103e..a8c6d1f 100644 --- a/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ᣗᐤᣖᓫ/Rope.java +++ b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ᣗᐤᣖᓫ/Rope.java @@ -46,6 +46,7 @@ public interface Rope { } default void forEachRemaining(Consumer action) { + Objects.requireNonNull(action); while (hasNext()) { action.accept(next()); } diff --git a/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ᣗᐤᣖᓫ/RopeIterable.java b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ᣗᐤᣖᓫ/RopeIterable.java index 5b045ee..af258c6 100644 --- a/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ᣗᐤᣖᓫ/RopeIterable.java +++ b/nx01-jpp0-collections2/src/main/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/ᣗᐤᣖᓫ/RopeIterable.java @@ -36,7 +36,7 @@ import java.util.function.Consumer; /// /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 -/// @param The value of the robe parts. +/// @param The value of the rope parts. public interface RopeIterable { Rope rope(); diff --git a/nx01-jpp0-collections2/src/test/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/YarnTest.java b/nx01-jpp0-collections2/src/test/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/YarnTest.java new file mode 100644 index 0000000..192a3c7 --- /dev/null +++ b/nx01-jpp0-collections2/src/test/java/ᒢᣘᐧᐧ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ/YarnTest.java @@ -0,0 +1,65 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package ᒢᣘᐧᐧ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆᒾ; + +import java.util.List; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class YarnTest { + + @Test + public void testYarnSize() { + ArrayLadderOpen yarn = new ArrayLadderOpen<>(); + Assertions.assertTrue(yarn.isEmpty()); + Assertions.assertEquals(0, yarn.size()); + yarn.add("foo"); + Assertions.assertFalse(yarn.isEmpty()); + Assertions.assertEquals(1, yarn.size()); + yarn.add("bar"); + Assertions.assertFalse(yarn.isEmpty()); + Assertions.assertEquals(2, yarn.size()); + } + + @Test + public void testYarnContains() { + ArrayLadderOpen yarn = new ArrayLadderOpen<>(); + yarn.add("foo"); + Assertions.assertTrue(yarn.contains("foo")); + Assertions.assertFalse(yarn.contains("bar")); + } + + @Test + public void testYarnContainsAll() { + ArrayLadderOpen yarn = new ArrayLadderOpen<>(); + yarn.addAll(YarnOpen.wrapᴼᶠ(List.of(1, 2, 3, 4))); + Assertions.assertTrue(yarn.containsAll(YarnOpen.wrapᴼᶠ(List.of(2, 3)))); + Assertions.assertFalse(yarn.containsAll(YarnOpen.wrapᴼᶠ(List.of(4, 5)))); + } +}