From 2c88f9596a96d8fbbed668ba3d8f43bde5808588 Mon Sep 17 00:00:00 2001
From: Paul H
Date: Tue, 25 Mar 2025 20:49:46 +0100
Subject: [PATCH] Implemented iterator
---
.../java/de/vivi/list/list/ArrayByteList.java | 6 +++++
.../main/java/de/vivi/list/list/ByteList.java | 2 +-
.../de/vivi/list/list/ByteListIterator.java | 25 +++++++++++++++++++
.../de/vivi/list/list/LinkedByteList.java | 7 ++++++
4 files changed, 39 insertions(+), 1 deletion(-)
create mode 100644 list/src/main/java/de/vivi/list/list/ByteListIterator.java
diff --git a/list/src/main/java/de/vivi/list/list/ArrayByteList.java b/list/src/main/java/de/vivi/list/list/ArrayByteList.java
index 35b5d08..7e4b371 100644
--- a/list/src/main/java/de/vivi/list/list/ArrayByteList.java
+++ b/list/src/main/java/de/vivi/list/list/ArrayByteList.java
@@ -1,6 +1,7 @@
package de.vivi.list.list;
import java.util.Arrays;
+import java.util.Iterator;
public class ArrayByteList implements ByteList {
@@ -51,6 +52,11 @@ public class ArrayByteList implements ByteList {
return values.length;
}
+ @Override
+ public Iterator iterator() {
+ return new ByteListIterator(this);
+ }
+
@Override
public String toString() {
return Arrays.toString(values);
diff --git a/list/src/main/java/de/vivi/list/list/ByteList.java b/list/src/main/java/de/vivi/list/list/ByteList.java
index 5d22b3c..57eba75 100644
--- a/list/src/main/java/de/vivi/list/list/ByteList.java
+++ b/list/src/main/java/de/vivi/list/list/ByteList.java
@@ -1,6 +1,6 @@
package de.vivi.list.list;
-public interface ByteList {
+public interface ByteList extends Iterable {
void add(byte value);
diff --git a/list/src/main/java/de/vivi/list/list/ByteListIterator.java b/list/src/main/java/de/vivi/list/list/ByteListIterator.java
new file mode 100644
index 0000000..bf35cdc
--- /dev/null
+++ b/list/src/main/java/de/vivi/list/list/ByteListIterator.java
@@ -0,0 +1,25 @@
+package de.vivi.list.list;
+
+import java.util.Iterator;
+
+public class ByteListIterator implements Iterator {
+
+ private int index;
+
+ private final ByteList list;
+
+ public ByteListIterator(ByteList list) {
+ this.index = 0;
+ this.list = list;
+ }
+
+ @Override
+ public boolean hasNext() {
+ return index < list.size();
+ }
+
+ @Override
+ public Byte next() {
+ return list.get(index++);
+ }
+}
diff --git a/list/src/main/java/de/vivi/list/list/LinkedByteList.java b/list/src/main/java/de/vivi/list/list/LinkedByteList.java
index 383a1d6..733fe01 100644
--- a/list/src/main/java/de/vivi/list/list/LinkedByteList.java
+++ b/list/src/main/java/de/vivi/list/list/LinkedByteList.java
@@ -1,5 +1,7 @@
package de.vivi.list.list;
+import java.util.Iterator;
+
public class LinkedByteList implements ByteList {
private static class Entry {
@@ -117,6 +119,11 @@ public class LinkedByteList implements ByteList {
return size;
}
+ @Override
+ public Iterator iterator() {
+ return new ByteListIterator(this);
+ }
+
@Override
public String toString() {
StringBuilder result = new StringBuilder("[");