package org.djunits.demo.examples; import java.util.Arrays; import java.util.SortedMap; import java.util.TreeMap; import org.djunits.unit.SpeedUnit; import org.djunits.unit.TimeUnit; import org.djunits.value.ValueRuntimeException; import org.djunits.value.storage.StorageType; import org.djunits.value.vdouble.scalar.Speed; import org.djunits.value.vdouble.scalar.Time; import org.djunits.value.vdouble.vector.SpeedVector; import org.djunits.value.vdouble.vector.TimeVector; import org.djunits.value.vdouble.vector.base.DoubleVector; import org.djunits.value.vfloat.scalar.FloatSpeed; import org.djunits.value.vfloat.scalar.FloatTime; import org.djunits.value.vfloat.vector.FloatSpeedVector; import org.djunits.value.vfloat.vector.FloatTimeVector; import org.djunits.value.vfloat.vector.base.FloatVector; /** *

* Copyright (c) 2013-2022 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
* BSD-style license. See DJUNITS License. *

* @author Alexander Verbraeck * @author Peter Knoppers */ public final class VectorToArrayExample { /** Utility constructor. */ private VectorToArrayExample() { // } /** * @param args String[]; the arguments for the main program, not used * @throws ValueRuntimeException on vector error */ public static void main(final String[] args) throws ValueRuntimeException { showDoubleToArray(); showFloatToArray(); } /** * double iterator example. * @throws ValueRuntimeException on error */ private static void showDoubleToArray() throws ValueRuntimeException { Speed s1 = new Speed(10.0, SpeedUnit.METER_PER_SECOND); Speed s2 = new Speed(12.0, SpeedUnit.METER_PER_SECOND); Speed s3 = new Speed(8.0, SpeedUnit.METER_PER_SECOND); Speed s4 = new Speed(16.0, SpeedUnit.METER_PER_SECOND); SpeedVector svd = DoubleVector.instantiate(new Speed[] {s1, s2, s3, s4}, SpeedUnit.METER_PER_SECOND, StorageType.DENSE); Speed[] svdArray = svd.getScalars(); System.out.println("\nSpeed vector (Double, Rel, Dense): " + Arrays.asList(svdArray) + " of length " + svdArray.length); for (Speed s : svdArray) { System.out.println(s); } SortedMap svsMap = new TreeMap<>(); svsMap.put(1, s1); svsMap.put(3, s2); svsMap.put(5, s3); svsMap.put(7, s4); SpeedVector svs = DoubleVector.instantiateMap(svsMap, 10, SpeedUnit.METER_PER_SECOND, StorageType.SPARSE); Speed[] svsArray = svs.getScalars(); System.out .println("\nSpeed vector (Double, Rel, Sparse): " + Arrays.asList(svsArray) + " of length " + svsArray.length); for (Speed s : svsArray) { System.out.println(s); } Time t1 = new Time(10.0, TimeUnit.BASE_SECOND); Time t2 = new Time(12.0, TimeUnit.BASE_SECOND); Time t3 = new Time(8.0, TimeUnit.BASE_SECOND); Time t4 = new Time(16.0, TimeUnit.BASE_SECOND); TimeVector tvd = DoubleVector.instantiate(new Time[] {t1, t2, t3, t4}, TimeUnit.BASE_SECOND, StorageType.DENSE); Time[] tvdArray = tvd.getScalars(); System.out.println("\nTime vector (Double, Abs, Dense): " + Arrays.asList(tvdArray) + " of length " + tvdArray.length); for (Time t : tvdArray) { System.out.println(t); } SortedMap tvsMap = new TreeMap<>(); tvsMap.put(1, t1); tvsMap.put(3, t2); tvsMap.put(5, t3); tvsMap.put(7, t4); TimeVector tvs = DoubleVector.instantiateMap(tvsMap, 10, TimeUnit.BASE_SECOND, StorageType.SPARSE); Time[] tvsArray = tvs.getScalars(); System.out.println("\nTime vector (Double, Abs, Sparse): " + Arrays.asList(tvsArray) + " of length " + tvsArray.length); for (Time t : tvsArray) { System.out.println(t); } } /** * float iterator example. * @throws ValueRuntimeException on error */ private static void showFloatToArray() throws ValueRuntimeException { FloatSpeed s1 = new FloatSpeed(10.0, SpeedUnit.METER_PER_SECOND); FloatSpeed s2 = new FloatSpeed(12.0, SpeedUnit.METER_PER_SECOND); FloatSpeed s3 = new FloatSpeed(8.0, SpeedUnit.METER_PER_SECOND); FloatSpeed s4 = new FloatSpeed(16.0, SpeedUnit.METER_PER_SECOND); FloatSpeedVector svd = FloatVector.instantiate(new FloatSpeed[] {s1, s2, s3, s4}, SpeedUnit.METER_PER_SECOND, StorageType.DENSE); FloatSpeed[] svdArray = svd.getScalars(); System.out.println("\nSpeed vector (Float, Rel, Dense): " + Arrays.asList(svdArray) + " of length " + svdArray.length); for (FloatSpeed s : svdArray) { System.out.println(s); } SortedMap svsMap = new TreeMap<>(); svsMap.put(1, s1); svsMap.put(3, s2); svsMap.put(5, s3); svsMap.put(7, s4); FloatSpeedVector svs = FloatVector.instantiateMap(svsMap, 10, SpeedUnit.METER_PER_SECOND, StorageType.SPARSE); FloatSpeed[] svsArray = svs.getScalars(); System.out.println("\nSpeed vector (Float, Rel, Sparse): " + Arrays.asList(svsArray) + " of length " + svsArray.length); for (FloatSpeed s : svsArray) { System.out.println(s); } FloatTime t1 = new FloatTime(10.0f, TimeUnit.BASE_SECOND); FloatTime t2 = new FloatTime(12.0f, TimeUnit.BASE_SECOND); FloatTime t3 = new FloatTime(8.0f, TimeUnit.BASE_SECOND); FloatTime t4 = new FloatTime(16.0f, TimeUnit.BASE_SECOND); FloatTimeVector tvd = FloatVector.instantiate(new FloatTime[] {t1, t2, t3, t4}, TimeUnit.BASE_SECOND, StorageType.DENSE); FloatTime[] tvdArray = tvd.getScalars(); System.out.println("\nTime vector (Float, Abs, Dense): " + Arrays.asList(tvdArray) + " of length " + tvdArray.length); for (FloatTime t : tvdArray) { System.out.println(t); } SortedMap tvsMap = new TreeMap<>(); tvsMap.put(1, t1); tvsMap.put(3, t2); tvsMap.put(5, t3); tvsMap.put(7, t4); FloatTimeVector tvs = FloatVector.instantiateMap(tvsMap, 10, TimeUnit.BASE_SECOND, StorageType.SPARSE); FloatTime[] tvsArray = tvs.getScalars(); System.out.println("\nTime vector (Float, Abs, Sparse): " + Arrays.asList(tvsArray) + " of length " + tvsArray.length); for (FloatTime t : tvsArray) { System.out.println(t); } } }