Java >> Tutoriel Java >  >> Tag >> ArrayList

Comparer tableau et ArrayList en Java

1) Tableaux en Java

1) Les tableaux ont une taille fixe (c'est-à-dire que nous ne pouvons pas augmenter ou diminuer la taille lors de l'exécution).

Exemple :

class ArrayClass
{
	public static void main(String[] args){
		int[] a = new int[10];
		System.out.println(a[0]);
	}
}

Sortie

E:\javasource>java ArrayClass
0 

2) Dans le cas d'un point de vue mémoire, il n'est pas recommandé d'utiliser le concept de tableaux (c'est-à-dire que la taille des tableaux est fixe si nous utilisons de la mémoire pour des éléments inférieurs à la taille des tableaux, de sorte que la mémoire sera gaspillée).

3) En cas de performances, il est recommandé d'utiliser le concept de tableaux (c'est-à-dire que nous connaissons la taille des tableaux à l'avance ou au moment de la compilation, donc pas de surcharge au moment de l'exécution, c'est pourquoi cela prend moins de temps).

4) Les tableaux peuvent contenir des éléments de données homogènes (c'est-à-dire que les éléments du tableau sont du même type).

Exemple :

class ArrayClass
{
	public static void main(String[] args){
		int[] a = new int[10];
		a[0]	= new boolean[10];
		System.out.println(a[0]);
	}
}

Sortie

E:\javasource>javac ArrayClass.java
ArrayClass.java:8: incompatible types
found   : boolean[]
required: int
                        a[0]    = new boolean[10];
                                  ^
1 error

5) Les tableaux ne fournissent pas de support de méthode prêt à l'emploi, c'est pourquoi nous pouvons appeler car les tableaux ne sont pas une structure de données sous-jacente.

6) Les tableaux sont capables de contenir à la fois des primitives (byte, short, int, long etc.) et des objets (classes wrapper, string, stringbuffer ou n'importe quelle classe définie par l'utilisateur).

Exemple 1 : Pour le type d'objet

class ArrayClass
{
	public static void main(String[] args){
		Integer[] a = new Integer[10];
		System.out.println(a[0]);
	}
}

Sortie

E:\javasource>java ArrayClass
null

Exemple 2 : Pour le type de primitives

class ArrayClass
{
	public static void main(String[] args){
		int[] a = new int[10];
		System.out.println(a[0]);
	}
}

Sortie

E:\javasource>java ArrayClass
0 

2) ArrayList en java

Liste de tableaux sont de nature évolutive (c'est-à-dire que nous pouvons augmenter ou diminuer la taille au moment de l'exécution).

Exemple :

import java.util.*;

class ArrayListClass
{
	public static void main(String[] args){
		ArrayList al = new ArrayList(2);
		al.add(10);
		al.add(20);
		System.out.println(al);
		al.add(30);
		System.out.println(al);
	}
}

Sortie

E:\javasource>java ArrayListClass
[10, 20]
[10, 20, 30]

En cas de point de vue mémoire ArrayList est recommandé d'utiliser (c'est-à-dire ArrayList la taille n'est pas fixe la mémoire sera allouée selon ArrayList taille des éléments).

En cas de point de vue performance ArrayList n'est pas recommandé d'utiliser (c'est-à-dire que nous ne connaissons pas la taille de ArrayList à l'avance ou au moment de la compilation supposons qu'au départ la mémoire est allouée pour 10 éléments Comme le 11ème élément puis à nouveau une nouvelle mémoire sera allouée et tous les éléments seront copiés dans une nouvelle mémoire ).

Liste de tableaux peut contenir des éléments de données homogènes et hétérogènes (c'est-à-dire ArrayList les éléments peuvent être de type différent).

Exemple :

import java.util.*;
class ArrayListClass{
	public static void main(String[] args){
		ArrayList al = new ArrayList(10);
		al.add("A");
		al.add("true");
		System.out.println(al);
	}
}

Sortie

E:\javasource>java ArrayListClass
[10, true]

Liste de tableaux fournir un support de méthode prêt à l'emploi, c'est pourquoi nous pouvons appeler en tant que ArrayList est la structure de données sous-jacente.

Exemple :

import java.util.*;
class ArrayListClass{
	public static void main(String[] args){
		ArrayList al = new ArrayList(10);
		al.add("A");
		al.add("true");
		al.remove(1);
		System.out.println(al.size());
	}
}

Sortie

add(), remove(), size() etc. sont les méthodes prêtes à l'emploi .

E:\javasource>java ArrayListClass
1

Balise Java