From 5a471d0f8c0e374d445be96446d32f9f1a468378 Mon Sep 17 00:00:00 2001 From: josua Date: Fri, 26 Jul 2019 20:07:05 +1000 Subject: [PATCH] Fixed some issues with iteration, updated readme --- README.md | 2 +- src/bdf/types/BdfArray.java | 35 ++++++++++++++++++++++++++++++++- src/bdf/types/BdfNamedList.java | 1 - src/tests/Tests.java | 26 ++++++++++++++++++++++++ 4 files changed, 61 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1a3fefe..2adc043 100644 --- a/README.md +++ b/README.md @@ -159,7 +159,7 @@ boolean has_key = list.contains("key1"); String[] keys = list.getKeys(); // Iterate over the lists keys -for(String key : list) +for(String key : keys) { } diff --git a/src/bdf/types/BdfArray.java b/src/bdf/types/BdfArray.java index 36ec53d..ca8f5ab 100644 --- a/src/bdf/types/BdfArray.java +++ b/src/bdf/types/BdfArray.java @@ -1,11 +1,12 @@ package bdf.types; import java.util.ArrayList; +import java.util.Iterator; import bdf.data.BdfDatabase; import bdf.util.DataHelpers; -public class BdfArray implements IBdfType +public class BdfArray implements IBdfType, Iterable { protected ArrayList elements = new ArrayList(); @@ -110,4 +111,36 @@ public class BdfArray implements IBdfType return elements.size(); } + @Override + public Iterator iterator() + { + return new Iterator() + { + protected int i = 0; + + @Override + public boolean hasNext() + { + return elements.size() > i; + } + + @Override + public BdfObject next() + { + BdfObject o = elements.get(i); + + i++; + + return o; + } + + @Override + public void remove() + { + i-=1; + elements.remove(i); + } + }; + } + } diff --git a/src/bdf/types/BdfNamedList.java b/src/bdf/types/BdfNamedList.java index 1273d12..ac48cb6 100644 --- a/src/bdf/types/BdfNamedList.java +++ b/src/bdf/types/BdfNamedList.java @@ -223,5 +223,4 @@ public class BdfNamedList implements IBdfType public int size() { return elements.size(); } - } diff --git a/src/tests/Tests.java b/src/tests/Tests.java index 5616d4a..ced5a79 100755 --- a/src/tests/Tests.java +++ b/src/tests/Tests.java @@ -1,7 +1,10 @@ package tests; +import java.util.Iterator; + import bdf.classes.BdfClassManager; import bdf.file.BdfFileManager; +import bdf.types.BdfArray; import bdf.types.BdfNamedList; import bdf.types.BdfObject; @@ -35,6 +38,29 @@ public class Tests { bdf.saveDatabase(); System.out.println(bdf.serializeHumanReadable()); + + BdfArray a = new BdfArray(); + + a.add(BdfObject.withInteger(1)); + a.add(BdfObject.withInteger(534)); + a.add(BdfObject.withInteger(32)); + a.add(BdfObject.withInteger(22)); + a.add(BdfObject.withInteger(12)); + + Iterator i = a.iterator(); + + while(i.hasNext()) + { + System.out.println(i.next().getInteger()); + i.remove(); + } + + Iterator i2 = a.iterator(); + + while(i2.hasNext()) + { + System.out.println(i2.next().getInteger()); + } } }