369 votes

comment créer un sous-tableau à partir d'un autre tableau en java

Comment créer un sous-tableau à partir d'un autre tableau? Est-il une méthode qui prend l'index à partir de la première pile de disques tels que:

methodName(object array, int start, int end)

Je n'ai pas envie d'aller faire des boucles et de faire mon programme de souffrir.

Je reçois l'erreur:

impossible de trouver le symbole de la méthode copyOfRange(int[],int,int)

C'est mon code:

import java.util.*;

public class testing 
{
    public static void main(String [] arg) 
    {   
        int[] src = new int[] {1, 2, 3, 4, 5}; 
        int b1[] = Arrays.copyOfRange(src, 0, 2);
    }
}

401voto

Jigar Joshi Points 116533

Vous pouvez utiliser

1 jdk > 1.5

Arrays.copyOfRange(Object[] src, int from, int to)

2 jdk < 1.5

System.arraycopy(Object[] src, int srcStartIndex, Object[] dest, int dstStartIndex, int lengthOfCopiedIndices); 

146voto

Bozho Points 273663

Arrays.copyOfRange(..) a été ajouté dans la version 1.6 de Java. Alors peut-être que vous n'avez pas la dernière version. Si il n'est pas possible de mettre à niveau, regardez - System.arraycopy(..)

22voto

Gerco Dries Points 4319

Oui, ça s'appelle du Système.arraycopy(Object, int, Object, int, int) .

Il va effectuer une boucle quelque part, sauf si cela peut être optimisé en quelque chose qui ressemble REP STOSW par le JIT (dans ce cas, la boucle est à l'intérieur de la CPU).

int[] src = new int[] {1, 2, 3, 4, 5};
int[] dst = new int[3];

System.arraycopy(src, 1, dst, 0, 3); // Copies 2, 3, 4 into dst

4voto

Milan Jaros Points 366
int newArrayLength = 30; 

int[] newArray = new int[newArrayLength];

System.arrayCopy(oldArray, 0, newArray, 0, newArray.length);

2voto

Merky Points 424

Le code est correct donc je suppose que vous utilisez une ancienne version de JDK. La javadoc de cette méthode, dit-il a été là depuis la 1.6. À la ligne de commande du type:

java -version

Je devine que vous n'êtes pas en cours d'exécution 1.6

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X