Object
.
La première méthode exposée n'entre dans aucune catégorie. Elle permet de convertir un tableau en
List
:
asList(Object[] tab)
. Attention toutefois, la liste retournée ne supporte pas l'ajout d'objet !
Exemple 15. Utilisation de
Arrays.asList(...)
// jusqu'ici tout va bien... List<String> list = Arrays.asList("Un", "Deux", "Trois") ; // génération d'une UnsupportedOperationException !!! list.add("Quatre") ;
binarySearch(int[] tab, int key)
. Il existe une version supplémentaire qui prend en paramètre deux index entre lesquels la recherche doit se limiter. Ces méthodes retournent l'index de l'élément recherché.
copyOf(int[] original, int newLength)
. Ces méthodes retournent un nouveau tableau, dans lequel les cases vides sont initialisées à
null
, ou à la valeur par défaut de chaque type primitif.
copyOfRange(int[] original, int from, int to)
. Le nouveau tableau de la bonne taille est retourné.
equals(int[] tab1, int[] tab2)
. Retourne
true
si les éléments de ces tableaux sont égaux deux à deux.
fill(int[] tab, int val)
et
fill(int[] tab, int fromIndex, int toIndex, int val)
. Ces méthodes ne retournent rien, c'est le tableau passé en paramètre qui est modifié.
hashCode(int[] tab)
: retourne le code de hachage du tableau passé en paramètre.
sort(int[] tab)
et
sort(int[] tab, int fromIndex, int toIndex)
: tri le tableau passé en paramètre en fonction du type du tableau. Si le tableau est un tableau d'objets, alors les objets doivent être
Comparable
.
toString()
pour les tableaux :
toString(int[] tab)
.
toString()
.
Exemple 16. Utilisation de
Arrays.toString()
// création d'un tableau String [] tab = {"Un", "Deux", "Trois"} ; // utilisation de la méthode System.out.println(Arrays.toString(tab)) ;
[Un, Deux, Trois]Les méthodes
equals()
,
hashCode()
et
toString()
sont construites sur les mêmes méthodes de la classe
Object
, mais ne traitent pas le fait que certains des éléments passés en paramètre peuvent être eux-mêmes des tableaux. La classe
Arrays
prend ce point en compte, et expose trois méthodes supplémentaires :
deepToString()
,
deepHashCode()
et
deepEquals()
.
Voyons l'utilisation de la méthode
deepToString()
sur un exemple.
Exemple 17. Utilisation de
Arrays.deepToString()
Object [] tabObject = {"Un", 1, tab} ; // utilisation de Arrays.toString() classique System.out.println(Arrays.toString(tabObject)) ; // utilisation de Arrays.deepToString() System.out.println(Arrays.deepToString(tabObject)) ;
Arrays.toString()
appelle la méthode
toString()
de chacun des éléments du tableau. Sur la deuxième ligne, on constate que
deepToString()
a bien vu que le troisième élément était un tableau, et a donc exploré ses éléments un par un.
[Un, 1, [Ljava.lang.String;@addbf1] [Un, 1, [Un, Deux, Trois]]
Arrays
.
Mettons l'accent sur certaines méthodes, qui permettent de construire des listes ou des tables particulières (vides, ne comportant qu'un unique élément), synchronisés ou
immutables
.
Certaines méthodes permettent de mélanger les éléments d'une collection, soit de façon prévisible (
rotate
), soit de façon aléatoire (
shuffle
).
On trouve encore des méthodes permettant de faire du tri, de rechercher le nombre de fois qu'un élément particulier apparaît dans une collection, ou encore de rechercher le plus petit ou le plus grand élément d'une collection.