diff artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedQualityExporter.java @ 7254:fe32a7f9655e

Reduce usage of careless 'for (int i = 0; i < x.size(); i++)' pattern.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sat, 05 Oct 2013 17:52:16 +0200
parents 41567bf1e131
children d72459b90397
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedQualityExporter.java	Sat Oct 05 12:49:53 2013 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedQualityExporter.java	Sat Oct 05 17:52:16 2013 +0200
@@ -15,7 +15,7 @@
 import java.text.DateFormat;
 import java.text.NumberFormat;
 import java.util.Arrays;
-import java.util.LinkedList;
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.log4j.Logger;
@@ -71,18 +71,20 @@
             BedDiameterResult[] beds = results[i].getBedResults();
             for (int j = 0; j < beds.length; j++) {
                 TDoubleArrayList bkms = beds[j].getKms();
-                for (int k = 0; k < bkms.size(); k++) {
-                    if (!kms.contains(bkms.get(k))) {
-                        kms.add(bkms.get(k));
+                for (int k = 0, K = bkms.size(); k < K; k++) {
+                    double km = bkms.get(k);
+                    if (!kms.contains(km)) { // XXX: O(N^2)
+                        kms.add(km);
                     }
                 }
             }
             BedloadDiameterResult[] loads = results[i].getBedloadResults();
             for (int j = 0; j < loads.length; j++) {
                 TDoubleArrayList lkms = loads[i].getKms();
-                for (int k = 0; k < lkms.size(); k++) {
-                    if (!kms.contains(lkms.get(k))) {
-                        kms.add(lkms.get(k));
+                for (int k = 0, L = lkms.size(); k < L; k++) {
+                    double km = lkms.get(k);
+                    if (!kms.contains(km)) { // XXX: O(N^2)
+                        kms.add(km);
                     }
                 }
             }
@@ -94,8 +96,8 @@
         }
 
         kms.sort();
-        List<double[]> rows = new LinkedList<double[]>();
-        for (int i = 0; i < kms.size(); i++) {
+        List<double[]> rows = new ArrayList<double[]>(kms.size());
+        for (int i = 0, K = kms.size(); i < K; i++) {
             double[] row = new double[cols];
             double km = kms.get(i);
             row[0] = km;
@@ -134,7 +136,7 @@
         }
         for (double[] d : rows) {
             logger.debug(Arrays.toString(d));
-            List<String> cells = new LinkedList<String>();
+            List<String> cells = new ArrayList<String>(d.length);
             for (int i = 0; i < d.length; i++) {
                 if (!Double.isNaN(d[i])) {
                     NumberFormat nf = Formatter.getFormatter(context, 1, 3);
@@ -174,7 +176,7 @@
     protected void writeCSVHeader(CSVWriter writer) {
         logger.debug("writeCSVHeader()");
 
-        List<String> header = new LinkedList<String>();
+        List<String> header = new ArrayList<String>();
         if (results != null)  {
             header.add(msg(CSV_HEADER_KM, "km"));
             for (int i = 0; i < results.length; i++) {

http://dive4elements.wald.intevation.org