Change iterator Queue from LinkedList to ArrayDequeue
This improves performance and memory allocation, whenever the iterators are used. See https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html
This commit is contained in:
+2
-5
@@ -22,15 +22,12 @@ package com.seibel.distanthorizons.core.util.objects.quadTree.iterators;
|
||||
import com.seibel.distanthorizons.core.pos.DhSectionPos;
|
||||
import com.seibel.distanthorizons.core.util.objects.quadTree.QuadNode;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Queue;
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class QuadNodeChildIndexIterator<T> implements Iterator<Integer>
|
||||
{
|
||||
private final Queue<Integer> iteratorQueue = new LinkedList<>();
|
||||
private final Queue<Integer> iteratorQueue = new ArrayDeque<>();
|
||||
|
||||
|
||||
|
||||
|
||||
+4
-7
@@ -22,10 +22,7 @@ package com.seibel.distanthorizons.core.util.objects.quadTree.iterators;
|
||||
import com.seibel.distanthorizons.core.pos.DhSectionPos;
|
||||
import com.seibel.distanthorizons.core.util.objects.quadTree.QuadNode;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Queue;
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class QuadTreeNodeIterator<T> implements Iterator<QuadNode<T>>
|
||||
@@ -34,8 +31,8 @@ public class QuadTreeNodeIterator<T> implements Iterator<QuadNode<T>>
|
||||
private final byte highestDetailLevel;
|
||||
|
||||
|
||||
private final Queue<QuadNode<T>> validNodesForDetailLevel = new LinkedList<>();
|
||||
private final Queue<QuadNode<T>> iteratorNodeQueue = new LinkedList<>();
|
||||
private final Queue<QuadNode<T>> validNodesForDetailLevel = new ArrayDeque<>();
|
||||
private final Queue<QuadNode<T>> iteratorNodeQueue = new ArrayDeque<>();
|
||||
private byte iteratorDetailLevel = 0;
|
||||
|
||||
private final boolean onlyReturnLeafValues;
|
||||
@@ -64,7 +61,7 @@ public class QuadTreeNodeIterator<T> implements Iterator<QuadNode<T>>
|
||||
// but it is simple and functions well enough for now
|
||||
|
||||
|
||||
Queue<QuadNode<T>> parentNodeQueue = new LinkedList<>();
|
||||
Queue<QuadNode<T>> parentNodeQueue = new ArrayDeque<>();
|
||||
parentNodeQueue.add(rootNode);
|
||||
|
||||
// walk through the whole tree and add each leaf node to the iterator queue
|
||||
|
||||
Reference in New Issue
Block a user