Chhaganlaal:
Por alguna razón, cuando cambio el valor de una clave particular en mi árbol-mapear cada tecla cambia de valor, por alguna razón. He aquí el fragmento de código,
ArrayList<Integer> bitor = new ArrayList<>();
TreeMap<Integer, ArrayList> a = new TreeMap<>();
for(int i=0; i<4; i++)
bitor.add(0);
for(int i=0; i<n; i++)
{
a.put(i, bitor);
}
System.out.println(a);
for(int i=0; i<n; i++)
{
x = i;
for(int j=0; j<n; j++)
{
if(x!=j)
{
y = j;
for(int k=0; k<n; k++)
{
if(x!=k && y!=k)
{
z = k;
System.out.println(a);
bitor = a.get(x);
if(bitor.get(0)==3)
break;
System.out.println(1+" "+x+" "+y+" "+z);
System.out.flush();
bitor.set(0, bitor.get(0)+1);
ans = sc.nextInt();
if(ans==-1)
System.exit(ans);
bitor.set(bitor.get(0), ans);
a.replace(x, bitor);
}
if(bitor.get(0)==3)
break;
}
}
}
}
Sólo el valor de la clave ArrayList = 0 se supone que el cambio pero cada valor clave se cambió.
Esto es un poco raro y estoy adivinando que estoy haciendo un error tonto.
Louis Wasserman:
for(int i=0; i<n; i++)
{
a.put(i, bitor);
}
Esto no hace lo que usted cree. Cada tecla señala en el mismo valor. Usted debe crear una nueva bitor
, de forma explícita, para cada uno i
.