Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #30695

Re: Recommended way to make shallow copy of array

From Sebastian <news@seyweiler.dyndns.org>
Newsgroups comp.lang.java.programmer
Subject Re: Recommended way to make shallow copy of array
Date 2015-01-13 23:04 +0100
Organization albasani.net
Message-ID <m944pq$58h$1@news.albasani.net> (permalink)
References <m93su6$n1u$1@Gaia.teknon.de>

Show all headers | View raw


Am 13.01.2015 20:50, schrieb Volker Borchert:
> Given an array of runtime component type T, I want to create a new
> array of the same runtime component type referencing the same objects.
> The two ways I know to achieve this are Arrays.copyOf() and T[].clone().
> Target VM is Hotspot Client of Sun JDK 1.7.0_72, will move on to Sun
> JDK 1.8.0_<then-current> some time not so far in the future. Which
> method should I prefer? Any other suggestions? Primary use case are
> defensive copies, where T is some immutable type or a primitive.
>
> TIA
>
>

There are several ways to copy an array :

- use the various copyOf and copyOfRange methods of the Arrays class

- use System.arraycopy (useful in particular when copying parts of an 
array)

- call its clone method, and do a cast (the simplest style, suitable for 
a shallow clone)

- use a for-loop (verbose)

The for-loop, copyOf and System.arraycopy styles clearly have 
independent storage, a clone of a one-dimensional array has independent 
storage, but the clone of a multi-dimensional array does not.

System.arraycopy seems to have slightly better performance. 
Arrays.copyOf is easiest to use with dynamic typing.

Differences between the various methods are small, however, and might be 
regarded a micro-optimization.

-- Sebastian

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Recommended way to make shallow copy of array v_borchert@despammed.com (Volker Borchert) - 2015-01-13 19:50 +0000
  Re: Recommended way to make shallow copy of array Joerg Meier <joergmmeier@arcor.de> - 2015-01-13 22:40 +0100
    Re: Recommended way to make shallow copy of array Joerg Meier <joergmmeier@arcor.de> - 2015-01-13 22:44 +0100
  Re: Recommended way to make shallow copy of array Sebastian <news@seyweiler.dyndns.org> - 2015-01-13 23:04 +0100
    Re: Recommended way to make shallow copy of array Eric Sosman <esosman@comcast-dot-net.invalid> - 2015-01-13 18:00 -0500
    Re: Recommended way to make shallow copy of array v_borchert@despammed.com (Volker Borchert) - 2015-01-19 20:15 +0000

csiph-web