Je me demande si des tableaux de chaîne en Java sont mutables? Je sais que les chaînes sont immuables, mais comment des tableaux de chaîne? P>
Si j'ai un tableau à chaîne et modifiez le contenu, un nouvel objet de chaîne sera-t-il créé? Ou la valeur réelle sera-t-elle simplement changée? P>
Merci d'avance p>
4 Réponses :
La chaîne Ceci est bien expliqué dans Cette réponse : p>
EDIT: P>
Un peu quelque peu connexe: Pourquoi les chaînes ne peuvent pas être mutables en Java et .net? P> code> s contenu dans la chaîne
[] code> est vraiment immuable, mais le tableau est mutable. P>
entier code>,
string code>, etc. est immutable li>
Autant que je me souvienne que le champ de votre réseau fera référence à une autre chaîne Votre tableau peut être modifié. les cordes elles-mêmes non. P> p>
Dans les tableaux, chaque élément n'est qu'un pointeur à un objet. Donc, lorsque vous faites quelque chose comme
String one = "1"; String two = "2"; String three = "3"; String four = "4"; String[] myStringArray = {one, two, three}; myStringArray[2] = four;
La chaîne string [] code> ne contient pas de références aux variables de chaîne, car certaines personnes pourraient dire. Le tableau
string [] code> contient des valeurs (ou plus exactement des références à des valeurs), mais non des références aux variables.
change(arr);
// where arr is a String[] array of {"1","2"}
// see the procedure below
System.out.println(arr[0]);
// Result is "one"
// ...
static void change(String[] someArray){
someArray[0]="one";
}
Les tableaux en Java sont mutables, il ne dépend pas du type de tableau, ils seront mutables dans tous les cas.