Java les tableaux Dynamiques
Je suis prise d'une programmation de classe de java et j'ai besoin d'aide avec les tableaux Dynamiques. J'ai regardé autour et ne peut pas trouver des façons de faire qui sont sur mon niveau de simplicité. Je ne suis pas loin de la classe et juste appris les bases, donc je ne sais pas trop mais j'ai besoin de savoir comment faire un Tableau Dynamique.
Voici les deux exemples de Programmes nous ont été donnés:
public class DynamicArrayOfInt
{
private int[] data;
public DynamicArrayOfInt()
{
data = new int[1];
}
public int get(int position)
{
if (position >= data.length)
return 0;
else
return data[position];
}
public void put(int position, int value)
{
if (position >= data.length)
{
int newSize = 2 * data.length;
if (position >= newSize)
newSize = 2 * position;
int[] newData = new int[newSize];
System.arraycopy(data, 0, newData, data.length);
data = newData;
System.out.println("Size of dynamic array increased to " + newSize);
}
data[position] = value;
}
}
`
Numéro 2
import java.util.Scanner;
public class ReverseWithDynamicArray
{
public static void main(Sting[] args)
{
DyanamicArrayOfInt numbers;
int numCt;
int num;
Scanner scan = new Scanner(System.in);
numbers = new DynamicArrayOfInt();
numCt = 0;
System.out.println("Enter some postive integers; Enter 0 to end");
while (true)
{
num = scan.nextInt();
if (num <= 0)
break;
numbers.put(numCt, num);
numCt++;
}
System.out.println("\nYour numbers in reverse order are:\n");
for (int i = numCt - 1; i >= 0; i--)
{
System.out.println( numbers.get(i) );
}
}
}
Le Second est censé hériter de la première et de vous permettre de Créer plusieurs tableaux une fois qu'ils sont saisis en. Mais quand j'utilise ces il dit que j'ai une erreur et il est dit que les noms de Classe ReverseWithDynamicArray
ne sont acceptés que si l'annotation de traitement est explicitement demandé.
- Je pense qu'il vous manque un argument dans le Système.arraycopy()?
Vous devez vous connecter pour publier un commentaire.
les utiliser pour votre 1er exemple de programme, j'ai changé les paramètres de votre Système.arraycopy
Pourquoi n'êtes-vous pas essayer de Collections?
Comme je pense que LinkedList est le meilleur pour elle.
Si je ne suis pas bien sûr de votre exigence.
Je suis en train de mettre un exemple de code ici:
//Note: La différence entre ArrayList et Linkedlist est que
Liste de tableaux met en œuvre RandomAccess interface, de sorte qu'il fournit à constante de temps d'accès pour accéder à n'importe quel indice. Donc, en utilisant ArrayList pour la récupération est meilleur, mais pour une insertion dans une position aléatoire ArrayList n'est pas approprié, car il a besoin de redimensionner de liste de tableaux et plusieurs opérations de décalage.
LinkedList est mis en œuvre pour un accès séquentiel sous la forme de nœuds avec une liste doublement chaînée. Pour accéder à n'importe quel indice il en aurez besoin pour accéder adresse suivante jusqu'à ce nœud. De manière aléatoire d'extraction/de lecture LinkedList n'est pas adapté. Mais pour l'insertion aléatoire de l'index, il a juste besoin de maintenir un nouveau nœud à insérer. Donc, pour l'insertion dans l'entre ou n'importe où dans votre liste LinkedList est adapté.
J'espère que ça peut vous aider.
Il vous manque un argument dans le Système.arraycopy(),à la Suite de la déclaration de java.lang.Système.arraycopy() la méthode
src -- C'est la source de tableau.
srcPos -- C'est la position de départ du tableau source.
dest -- C'est le tableau de destination.
destPos -- C'est la position de départ dans les données de destination.
longueur -- C'est le nombre d'éléments du tableau à copier.
Ont un look à la primitive de la mise en œuvre de la collecte en java. Il y a beaucoup de bibliothèques disponibles. Un de la bonne mise en œuvre est Trove
J'espère que vous pouvez économiser de l'espace et du temps à la fois à l'aide de primitives collections.