Utilizar o HashMap e a forma “Pre fabricado” do java para fazer isso.
procure evitar informação duplicada isso pode deixar a sua aplicação lenta, e as vesse tão lento que nem vale a pena duplicar
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package teste;
import java.util.HashMap;
public class Teste {
/**
* @param args the command line arguments
*/
static HashMap<Posicao, Unidade> map = new HashMap();
public static void main(String[] args) {
criaUnidade(10, 200);
criaUnidade(30, 245);
criaUnidade(70, 753);
criaUnidade(54, 127);
criaUnidade(86, 290);
criaUnidade(134, 583);
Posicao pos = new Posicao(54, 127);//posição que você quer procurar
Unidade get = map.get(pos);//pega a unidade na posição citada
System.out.println(get.nome);
}
static public Unidade criaUnidade(int x, int y) {
Unidade unidade = new Unidade(x, y);
map.put(unidade.getPos(), unidade);
return unidade;
}
}
class Unidade {
static int count = 0;
String nome;
Posicao pos;
public Unidade(int x, int y) {
nome = Integer.toString(count++);
pos = new Posicao(this, x, y);
}
public Posicao getPos() {
return pos;
}
}
class Posicao {
public Posicao(int x, int y) {
this(null, x, y);
}
public Posicao(Unidade unidade, int x, int y) {
this.unidade = unidade;
this.x = x;
this.y = y;
}
Unidade unidade;
int x;
int y;
//get,set ...
//pulo do gato: sobrescreve hashCode
@Override
public int hashCode() {
return x + 3 * y; //o eclipse gera esse algoritmo pra você
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Posicao other = (Posicao) obj;
if (this.x != other.x) {
return false;
}
if (this.y != other.y) {
return false;
}
return true;
}
}
se for para criar uma classe que represente a posição do seu personagem reaproveite a mesma para armazenar a posição dele (assim uma instancia da posição seria criada, que o gastaria menos memoria RAM)
alem disse a classe posição pode ter uma referencia a unidade que ela mostra a posição, assim quando você procurar no HashMap seria mais ou menos assim
Basicamente isso ficou sendo o que “rmendes08” disse