View Javadoc
1   package org.djunits.demo.examples;
2   
3   import java.util.SortedMap;
4   import java.util.TreeMap;
5   
6   import org.djunits.unit.SpeedUnit;
7   import org.djunits.unit.TimeUnit;
8   import org.djunits.value.StorageType;
9   import org.djunits.value.ValueException;
10  import org.djunits.value.vdouble.scalar.Speed;
11  import org.djunits.value.vdouble.scalar.Time;
12  import org.djunits.value.vdouble.vector.SpeedVector;
13  import org.djunits.value.vdouble.vector.TimeVector;
14  import org.djunits.value.vfloat.scalar.FloatSpeed;
15  import org.djunits.value.vfloat.scalar.FloatTime;
16  import org.djunits.value.vfloat.vector.FloatSpeedVector;
17  import org.djunits.value.vfloat.vector.FloatTimeVector;
18  
19  /**
20   * <p>
21   * Copyright (c) 2013-2018 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
22   * BSD-style license. See <a href="http://opentrafficsim.org/docs/current/license.html">OpenTrafficSim License</a>.
23   * </p>
24   * $LastChangedDate: 2015-07-24 02:58:59 +0200 (Fri, 24 Jul 2015) $, @version $Revision: 1147 $, by $Author: averbraeck $,
25   * initial version Jan 28, 2018 <br>
26   * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a>
27   * @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a>
28   * @author <a href="http://www.transport.citg.tudelft.nl">Wouter Schakel</a>
29   */
30  public final class VectorToArrayExample
31  {
32      /** Utility constructor. */
33      private VectorToArrayExample()
34      {
35          //
36      }
37  
38      /**
39       * @param args the arguments for the main program, not used
40       * @throws ValueException on vector error
41       */
42      public static void main(final String[] args) throws ValueException
43      {
44          showDoubleToArray();
45          showFloatToArray();
46      }
47  
48      /**
49       * double iterator example.
50       * @throws ValueException on error
51       */
52      private static void showDoubleToArray() throws ValueException
53      {
54          Speed s1 = new Speed(10.0, SpeedUnit.METER_PER_SECOND);
55          Speed s2 = new Speed(12.0, SpeedUnit.METER_PER_SECOND);
56          Speed s3 = new Speed(8.0, SpeedUnit.METER_PER_SECOND);
57          Speed s4 = new Speed(16.0, SpeedUnit.METER_PER_SECOND);
58          SpeedVector svd = new SpeedVector(new Speed[] { s1, s2, s3, s4 }, StorageType.DENSE);
59          Speed[] svdArray = svd.toArray();
60          System.out.println("Speed vector (Double, Rel, Dense): " + svdArray + " of length " + svdArray.length);
61          for (Speed s : svdArray)
62          {
63              System.out.println(s);
64          }
65  
66          SortedMap<Integer, Speed> svsMap = new TreeMap<>();
67          svsMap.put(1, s1);
68          svsMap.put(3, s2);
69          svsMap.put(5, s3);
70          svsMap.put(7, s4);
71          SpeedVector svs = new SpeedVector(svsMap, 10, StorageType.SPARSE);
72          Speed[] svsArray = svs.toArray();
73          System.out.println("\nSpeed vector (Double, Rel, Sparse): " + svsArray + " of length " + svsArray.length);
74          for (Speed s : svsArray)
75          {
76              System.out.println(s);
77          }
78  
79          Time t1 = new Time(10.0, TimeUnit.BASE_SECOND);
80          Time t2 = new Time(12.0, TimeUnit.BASE_SECOND);
81          Time t3 = new Time(8.0, TimeUnit.BASE_SECOND);
82          Time t4 = new Time(16.0, TimeUnit.BASE_SECOND);
83          TimeVector tvd = new TimeVector(new Time[] { t1, t2, t3, t4 }, StorageType.DENSE);
84          Time[] tvdArray = tvd.toArray();
85          System.out.println("Time vector (Double, Abs, Dense): " + tvdArray + " of length " + tvdArray.length);
86          for (Time t : tvdArray)
87          {
88              System.out.println(t);
89          }
90  
91          SortedMap<Integer, Time> tvsMap = new TreeMap<>();
92          tvsMap.put(1, t1);
93          tvsMap.put(3, t2);
94          tvsMap.put(5, t3);
95          tvsMap.put(7, t4);
96          TimeVector tvs = new TimeVector(tvsMap, 10, StorageType.SPARSE);
97          Time[] tvsArray = tvs.toArray();
98          System.out.println("Time vector (Double, Abs, Sparse): " + tvsArray + " of length " + tvsArray.length);
99          for (Time t : tvsArray)
100         {
101             System.out.println(t);
102         }
103     }
104 
105     /**
106      * float iterator example.
107      * @throws ValueException on error
108      */
109     private static void showFloatToArray() throws ValueException
110     {
111         FloatSpeed s1 = new FloatSpeed(10.0, SpeedUnit.METER_PER_SECOND);
112         FloatSpeed s2 = new FloatSpeed(12.0, SpeedUnit.METER_PER_SECOND);
113         FloatSpeed s3 = new FloatSpeed(8.0, SpeedUnit.METER_PER_SECOND);
114         FloatSpeed s4 = new FloatSpeed(16.0, SpeedUnit.METER_PER_SECOND);
115         FloatSpeedVector svd = new FloatSpeedVector(new FloatSpeed[] { s1, s2, s3, s4 }, StorageType.DENSE);
116         FloatSpeed[] svdArray = svd.toArray();
117         System.out.println("Speed vector (Float, Rel, Dense): " + svdArray + " of length " + svdArray.length);
118         for (FloatSpeed s : svdArray)
119         {
120             System.out.println(s);
121         }
122 
123         SortedMap<Integer, FloatSpeed> svsMap = new TreeMap<>();
124         svsMap.put(1, s1);
125         svsMap.put(3, s2);
126         svsMap.put(5, s3);
127         svsMap.put(7, s4);
128         FloatSpeedVector svs = new FloatSpeedVector(svsMap, 10, StorageType.SPARSE);
129         FloatSpeed[] svsArray = svs.toArray();
130         System.out.println("\nSpeed vector (Float, Rel, Sparse): " + svsArray + " of length " + svsArray.length);
131         for (FloatSpeed s : svsArray)
132         {
133             System.out.println(s);
134         }
135 
136         FloatTime t1 = new FloatTime(10.0f, TimeUnit.BASE_SECOND);
137         FloatTime t2 = new FloatTime(12.0f, TimeUnit.BASE_SECOND);
138         FloatTime t3 = new FloatTime(8.0f, TimeUnit.BASE_SECOND);
139         FloatTime t4 = new FloatTime(16.0f, TimeUnit.BASE_SECOND);
140         FloatTimeVector tvd = new FloatTimeVector(new FloatTime[] { t1, t2, t3, t4 }, StorageType.DENSE);
141         FloatTime[] tvdArray = tvd.toArray();
142         System.out.println("Time vector (Float, Abs, Dense): " + tvdArray + " of length " + tvdArray.length);
143         for (FloatTime t : tvdArray)
144         {
145             System.out.println(t);
146         }
147 
148         SortedMap<Integer, FloatTime> tvsMap = new TreeMap<>();
149         tvsMap.put(1, t1);
150         tvsMap.put(3, t2);
151         tvsMap.put(5, t3);
152         tvsMap.put(7, t4);
153         FloatTimeVector tvs = new FloatTimeVector(tvsMap, 10, StorageType.SPARSE);
154         FloatTime[] tvsArray = tvs.toArray();
155         System.out.println("Time vector (Float, Abs, Sparse): " + tvsArray + " of length " + tvsArray.length);
156         for (FloatTime t : tvsArray)
157         {
158             System.out.println(t);
159         }
160 
161     }
162 
163 }