@@ -16,7 +16,7 @@ public class BasicDecimal64Vector extends AbstractVector{
1616 private int scale_ = -1 ;
1717 private long [] unscaledValues ;
1818 private int size ;
19- private int capaticy ;
19+ private int capacity ;
2020
2121 private static final BigDecimal DECIMAL64_MIN_VALUE = new BigDecimal ("-9223372036854775808" );
2222 private static final BigDecimal DECIMAL64_MAX_VALUE = new BigDecimal ("9223372036854775807" );
@@ -33,15 +33,15 @@ public BasicDecimal64Vector(int size, int scale){
3333 unscaledValues = new long [size ];
3434
3535 this .size = unscaledValues .length ;
36- capaticy = unscaledValues .length ;
36+ capacity = unscaledValues .length ;
3737 }
3838
3939 BasicDecimal64Vector (DATA_FORM df , int size ){
4040 super (df );
4141 unscaledValues = new long [size ];
4242
4343 this .size = unscaledValues .length ;
44- capaticy = unscaledValues .length ;
44+ capacity = unscaledValues .length ;
4545 }
4646
4747 BasicDecimal64Vector (long [] dataValue , int scale ){
@@ -51,7 +51,7 @@ public BasicDecimal64Vector(int size, int scale){
5151 this .scale_ = scale ;
5252 this .unscaledValues = dataValue ;
5353 this .size = unscaledValues .length ;
54- capaticy = unscaledValues .length ;
54+ capacity = unscaledValues .length ;
5555 }
5656
5757 public BasicDecimal64Vector (String [] data , int scale ) {
@@ -70,7 +70,7 @@ public BasicDecimal64Vector(String[] data, int scale) {
7070 }
7171
7272 size = length ;
73- capaticy = length ;
73+ capacity = length ;
7474 }
7575
7676 public BasicDecimal64Vector (DATA_FORM df , ExtendedDataInput in , int extra ) throws IOException {
@@ -101,7 +101,7 @@ public BasicDecimal64Vector(DATA_FORM df, ExtendedDataInput in, int extra) throw
101101 }
102102
103103 this .size = unscaledValues .length ;
104- capaticy = unscaledValues .length ;
104+ capacity = unscaledValues .length ;
105105 }
106106
107107 @ Deprecated
@@ -121,7 +121,7 @@ public BasicDecimal64Vector(double[] data, int scale){
121121 }
122122 unscaledValues = newIntValue ;
123123 this .size = unscaledValues .length ;
124- capaticy = unscaledValues .length ;
124+ capacity = unscaledValues .length ;
125125 }
126126
127127 @ Override
@@ -141,7 +141,7 @@ public void deserialize(int start, int count, ExtendedDataInput in) throws IOExc
141141 }
142142
143143 this .size = unscaledValues .length ;
144- capaticy = unscaledValues .length ;
144+ capacity = unscaledValues .length ;
145145 }
146146
147147 @ Override
@@ -254,13 +254,13 @@ public int getUnitLength() {
254254 }
255255
256256 public void add (String value ) {
257- if (size + 1 > capaticy && unscaledValues .length > 0 ) {
257+ if (size + 1 > capacity && unscaledValues .length > 0 ) {
258258 unscaledValues = Arrays .copyOf (unscaledValues , unscaledValues .length * 2 );
259259 } else if (unscaledValues .length <= 0 ) {
260260 unscaledValues = new long [1 ];
261261 }
262262
263- capaticy = unscaledValues .length ;
263+ capacity = unscaledValues .length ;
264264 if (value .equals ("0.0" ))
265265 unscaledValues [size ] = 0 ;
266266 else if (value .equals ("" ))
@@ -276,12 +276,12 @@ else if(value.equals(""))
276276
277277 @ Deprecated
278278 public void add (double value ) {
279- if (size + 1 > capaticy && unscaledValues .length > 0 ){
279+ if (size + 1 > capacity && unscaledValues .length > 0 ){
280280 unscaledValues = Arrays .copyOf (unscaledValues , unscaledValues .length * 2 );
281281 }else if (unscaledValues .length <= 0 ){
282282 unscaledValues = Arrays .copyOf (unscaledValues , unscaledValues .length + 1 );
283283 }
284- capaticy = unscaledValues .length ;
284+ capacity = unscaledValues .length ;
285285 if (value == 0.0 )
286286 unscaledValues [size ] = 0 ;
287287 else {
@@ -297,10 +297,10 @@ public void add(double value) {
297297
298298
299299 void addRange (long [] valueList ) {
300- unscaledValues = Arrays .copyOf (unscaledValues , valueList .length + unscaledValues .length );
300+ int requiredCapacity = size + valueList .length ;
301+ checkCapacity (requiredCapacity );
301302 System .arraycopy (valueList , 0 , unscaledValues , size , valueList .length );
302303 size += valueList .length ;
303- capaticy = unscaledValues .length ;
304304 }
305305
306306 public void addRange (String [] valueList ) {
@@ -314,7 +314,7 @@ public void addRange(String[] valueList) {
314314 unscaledValues = Arrays .copyOf (unscaledValues , newLongValue .length + unscaledValues .length );
315315 System .arraycopy (newLongValue , 0 , unscaledValues , size , newLongValue .length );
316316 size += newLongValue .length ;
317- capaticy = unscaledValues .length ;
317+ capacity = unscaledValues .length ;
318318 }
319319
320320 @ Deprecated
@@ -331,7 +331,7 @@ public void addRange(double[] valueList) {
331331 unscaledValues = Arrays .copyOf (unscaledValues , newLongValue .length + unscaledValues .length );
332332 System .arraycopy (newLongValue , 0 , unscaledValues , size , newLongValue .length );
333333 size += newLongValue .length ;
334- capaticy = unscaledValues .length ;
334+ capacity = unscaledValues .length ;
335335 }
336336
337337 @ Override
@@ -341,12 +341,23 @@ public void Append(Scalar value) throws Exception{
341341
342342 @ Override
343343 public void Append (Vector value ) throws Exception {
344- if (((BasicDecimal64Vector )value ).getScale () == scale_ )
345- addRange (((BasicDecimal64Vector )value ).getdataArray ());
346- else {
347- for (int i = 0 ; i < value .rows (); ++i ){
344+ if (((BasicDecimal64Vector )value ).getScale () == scale_ )
345+ addRange (((BasicDecimal64Vector ) value ).getdataArray ());
346+ else {
347+ for (int i = 0 ; i < value .rows (); ++i )
348348 Append ((Scalar )value .get (i ));
349- }
349+ }
350+ }
351+
352+ @ Override
353+ public void checkCapacity (int requiredCapacity ) {
354+ if (requiredCapacity > unscaledValues .length ) {
355+ int newCapacity = Math .max (
356+ (int )(unscaledValues .length * GROWTH_FACTOR ),
357+ requiredCapacity
358+ );
359+ unscaledValues = Arrays .copyOf (unscaledValues , newCapacity );
360+ capacity = newCapacity ;
350361 }
351362 }
352363
0 commit comments