Fórum Como fazer ArrayList bidimensional? #565893
15/07/2013
0
Daniel Gimenes
Curtir tópico
+ 0Post mais votado
16/07/2013
public class Teste {
public static void main(String[] args) {
// criando uma matriz dinâmica de String, poderia ser de qualquer outra coisa
MatrizDinamica<String> matriz = new MatrizDinamica<String>();
int linhas = 10;
int colunas = 5;
for (int i = 0; i < linhas; i++) {
for (int j = 0; j < colunas; j++) {
String elemento = "linha: " + i + ", coluna: " + j;
matriz.set(i, j, elemento); // inserindo o elemento
}
}
for (int i = 0; i < linhas; i++) {
for (int j = 0; j < colunas; j++) {
String elemento = matriz.get(i, j); // obtendo o elementos
System.out.println(elemento);
}
}
}
}
import java.util.*;
public class MatrizDinamica<T> {
private final Map<Integer, Map<Integer, T>> elementos = new HashMap<Integer, Map<Integer, T>>();
public void set(int linha, int coluna, T elemento) {
Map<Integer, T> colunas = getColunas(linha);
Integer chave = Integer.valueOf(coluna);
if (elemento != null) {
colunas.put(chave, elemento);
} else {
colunas.remove(chave);
}
}
public T get(int linha, int coluna) {
Map<Integer, T> colunas = getColunas(linha);
Integer chave = Integer.valueOf(coluna);
T elemento = colunas.get(chave);
return elemento;
}
private Map<Integer, T> getColunas(int linha) {
int chave = Integer.valueOf(linha);
Map<Integer, T> colunas = elementos.get(chave);
if (colunas == null) {
colunas = new HashMap<Integer, T>();
elementos.put(chave, colunas);
}
return colunas;
}
}
Ricardo Staroski
Gostei + 1
Mais Posts
15/07/2013
Ricardo Staroski
List<List<TipoDeDado>> listaDeListas = new ArrayList<List<TipoDeDado>>();
Gostei + 0
15/07/2013
Thiago Palmeira
Gostei + 0
17/07/2013
Daniel Gimenes
Gostei + 0
17/07/2013
Ricardo Staroski
Gostei + 0
17/07/2013
Thiago Palmeira
Gostei + 0
17/07/2013
Leonardo Oliveira
Gostei + 0
17/07/2013
Ricardo Staroski
Gostei + 0