Browse Source

Queue changed to ArrayDeque. Faster Performances for Collections

Teh-Hai Julian Zheng 8 years ago
parent
commit
cb5ce0f89f
2 changed files with 7 additions and 6 deletions
  1. 4 4
      src/ui/controller/CanvasController.java
  2. 3 2
      src/ui/controller/StoreController.java

+ 4 - 4
src/ui/controller/CanvasController.java

@@ -1,8 +1,8 @@
 package ui.controller;
 
 import java.awt.Point;
+import java.util.ArrayDeque;
 import java.util.ArrayList;
-import java.util.LinkedList;
 
 import classes.CpsEdge;
 import classes.CpsNode;
@@ -282,12 +282,12 @@ public class CanvasController {
 	 */
 	public void bfsNodeCleaner(CpsUpperNode node) {
 
-		LinkedList<AbstractCpsObject> queue = new LinkedList<>();
+		ArrayDeque<AbstractCpsObject> queue = new ArrayDeque<>();
 		AbstractCpsObject u = node;
 
 		queue.add(u);
 		while (!queue.isEmpty()) {
-			u = queue.poll();
+			u = queue.pop();
 
 			deleteConnections(u);
 			if (u instanceof CpsUpperNode)
@@ -305,7 +305,7 @@ public class CanvasController {
 	 */
 	private void deleteConnections(AbstractCpsObject obj) {
 
-		LinkedList<CpsEdge> queue = new LinkedList<>();
+		ArrayDeque<CpsEdge> queue = new ArrayDeque<>();
 		CpsEdge e = null;
 
 		for (CpsEdge edge : obj.getConnections()) {

+ 3 - 2
src/ui/controller/StoreController.java

@@ -4,6 +4,7 @@ import java.awt.Color;
 import java.awt.Point;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.LinkedList;
 import com.google.gson.Gson;
@@ -169,7 +170,7 @@ public class StoreController {
 	 */
 	private void storeCanvas(JsonObject file) {
 		// TODO Auto-generated method stub
-		LinkedList<AbstractCpsObject> queue = new LinkedList<>();
+		ArrayDeque<AbstractCpsObject> queue = new ArrayDeque<>();
 		AbstractCpsObject u = null;
 		// put all objects into queue since there is not starting object
 		for (AbstractCpsObject cps : model.getObjectsOnCanvas()) {
@@ -179,7 +180,7 @@ public class StoreController {
 		while (!queue.isEmpty()) {
 
 			// u = current node
-			u = queue.poll();
+			u = queue.pop();
 			// add currentnode into jsontree
 			String key = "CVSOBJECT" + getNumerator(NUMTYPE.OBJECT);
 			file.add(key, gson.toJsonTree(u, AbstractCpsObject.class));