Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Sieve.java @ 3281:3c61d9e64ca0
SQ: Added sieve
flys-artifacts/trunk@4941 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 11 Jul 2012 15:13:01 +0000 |
parents | |
children | a9c93b7c9da1 |
comparison
equal
deleted
inserted
replaced
3280:4a70525c5b0d | 3281:3c61d9e64ca0 |
---|---|
1 package de.intevation.flys.artifacts.model.sq; | |
2 | |
3 import java.util.ArrayList; | |
4 import java.util.Iterator; | |
5 import java.util.List; | |
6 | |
7 public class Sieve | |
8 { | |
9 public double [] fractionSizes; | |
10 | |
11 protected List<List<SQ>> fractions; | |
12 | |
13 public Sieve() { | |
14 } | |
15 | |
16 public Sieve(double [] fractionSizes) { | |
17 this.fractionSizes = fractionSizes; | |
18 fractions = new ArrayList<List<SQ>>(fractionSizes.length+1); | |
19 for (int i = fractionSizes.length; i >= 0; --i) { | |
20 fractions.add(new ArrayList<SQ>()); | |
21 } | |
22 } | |
23 | |
24 public void sieve(Iterator<SQ> sqs) { | |
25 OUTER: while (sqs.hasNext()) { | |
26 SQ sq = sqs.next(); | |
27 double q = sq.getQ(); | |
28 for (int i = 0; i < fractionSizes.length; ++i) { | |
29 if (q < fractionSizes[i]) { | |
30 fractions.get(i).add(sq); | |
31 continue OUTER; | |
32 } | |
33 } | |
34 fractions.get(fractions.size()-1).add(sq); | |
35 } | |
36 } | |
37 | |
38 public int numFractions() { | |
39 return fractions.size(); | |
40 } | |
41 | |
42 public List<SQ> getFraction(int idx) { | |
43 return fractions.get(idx); | |
44 } | |
45 | |
46 public void reset() { | |
47 for (List<SQ> fraction: fractions) { | |
48 fraction.clear(); | |
49 } | |
50 } | |
51 } | |
52 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |