Existe a possiblidade de se criar um Vector Bidimensional (matriz), tipo, ou soh posso criar com um Array???
Valeu!!!
Existe a possiblidade de se criar um Vector Bidimensional (matriz), tipo, ou soh posso criar com um Array???
Valeu!!!
Acredito que ArrayList é sua resposta
abraço
Vector<Vector> v = new Vector<Vector>();
v.add = new Vector<String>();
v.add = new Vector<String>();
v.add = new Vector<String>();
sei lah c isso funcionado mais eh isso:??
Com ArrayList sei que tem como, mas com Vector isto eh possível??
Vamos lá. Você quer algo como:
double[][] dados = new double [20][40];
dados [3][4] = 3.4;
System.out.println (dados [3][4]);
ou você quer algo como:
List < List < Double > > dados = new ArrayList < List < Double > > ();
for (int i = 0; i < 20; i++) {
dados.add (new ArrayList<Double> ());
for (int j = 0; j < 40; j++) {
dados.get(i).add (new Double (0.0));
}
}
dados.get(3).set(4, new Double (3.4));
System.out.println (dados.get(3).get(4));
algo como:
ArrayList<String[]> teste = new ArrayList<String[]>();
String[] enter = {"1","2","3","4"};
teste.add(enter);
String n1 = teste.get(0)[0]; //como se fosse linha 1 da coluna 1
Eu uso desse jeito pra cria JTables herdando de AbstractTableModel
Eu quero incluir em um Vector, na posição vPal(0)(0), na coluna 0 eu coloco uma palavra e na coluna 1 eu coloco u numero de vezes que esta palavra aparece…
Você quer fazer uma tabela de freqüências? Em vez de fazer com um vetor bidimensional, use um TreeMap < String, Integer > . Vou dar um exemplo daqui a pouco.
Bah isso mesmo, valeu, estou aguardando!!!
Em homenagem à visita do Papa, um trechinho de Lucas 12:
import java.util.*;
class TabelaFrequencias {
public static void main(String[] args) {
String texto = "Considerai os lírios, como eles crescem; não trabalham, nem "
+ " fiam; e digo-vos que nem ainda Salomão, em toda a sua glória, se vestiu "
+ " como um deles. E, se Deus assim veste a erva que hoje está no campo e "
+ " amanhã é lançada no forno, quanto mais a vós, homens de pouca fé? Não "
+ " pergunteis, pois, que haveis de comer, ou que haveis de beber, e não "
+ " andeis inquietos.";
String[] palavras = texto.split ("[ ,;.:?-]+");
Map < String, Integer > tabFreq = new TreeMap < String, Integer > ();
for (int i = 0; i < palavras.length; ++i) {
String palavra = palavras [i];
Integer freq = tabFreq.get (palavra);
if (freq == null) {
freq = 0;
}
tabFreq.put (palavra, freq + 1);
}
System.out.println ("A freqüência da palavra 'como' é : " + tabFreq.get ("como"));
System.out.println ("Imprimindo a tabela de freqüências");
for (Map.Entry < String, Integer > tab : tabFreq.entrySet()) {
System.out.println (tab.getKey() + "=" + tab.getValue());
}
}
}
eu ja possuo um vetor com as palavras e também um outro vetor com a frequência delas, teria como eu utilizar esses dois vetores para fazer a inserção no treeMap???
É claro que sim. Aí fica por sua conta (dê uma olhada no javadoc, por gentileza:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html
http://java.sun.com/j2se/1.5.0/docs/api/java/util/TreeMap.html
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html
Para ordenar um Map utiliza-se os mesmo métodos de classificação que usamos frequentemente(BubbleSort, QuickSort, etc)? ou existe outros mais específicos???
Se você usar um TreeMap ele já fica “ordenado automaticamente”. Você não rodou o programa que postei acima?
Sim Sim soh que eu queria ordenar pela frequencia… tem como???
Desde ja valeu ai pelas dicas…
import java.util.*;
class TabelaFrequencias2 {
/**
* Note que várias palavras podem ter a mesma freqüência. Portanto,
* não podemos usar um Map < Integer, String > e sim um
* Map < Integer, Set < String > >.
*/
public static void main(String[] args) {
String texto = "Considerai os lírios, como eles crescem; não trabalham, nem "
+ " fiam; e digo-vos que nem ainda Salomão, em toda a sua glória, se vestiu "
+ " como um deles. E, se Deus assim veste a erva que hoje está no campo e "
+ " amanhã é lançada no forno, quanto mais a vós, homens de pouca fé? Não "
+ " pergunteis, pois, que haveis de comer, ou que haveis de beber, e não "
+ " andeis inquietos.";
String[] palavras = texto.split ("[ ,;.:?-]+");
Map < String, Integer > tabFreq = new TreeMap < String, Integer > ();
for (int i = 0; i < palavras.length; ++i) {
String palavra = palavras [i];
Integer freq = tabFreq.get (palavra);
if (freq == null) {
freq = 0;
}
tabFreq.put (palavra, freq + 1);
}
System.out.println ("Ordenando (ordem decrescente) por freqüências");
Map < Integer, Set < String > > tabInv = new TreeMap < Integer, Set < String > > (new Comparator <Integer>() {
public int compare (Integer i1, Integer i2) {
return -i1.compareTo (i2);
}
});
// Invertendo a tabela
for (Map.Entry < String, Integer > tab : tabFreq.entrySet()) {
Integer freq = tab.getValue();
String palavra = tab.getKey();
if (!tabInv.containsKey (freq)) {
tabInv.put (freq, new TreeSet < String > ());
}
tabInv.get (freq).add (palavra);
}
for (Integer freq : tabInv.keySet()) {
System.out.println ("Palavras com a freqüência " + freq);
System.out.println (" " + tabInv.get (freq));
}
}
}
Bah consegui roda aqui no meu programa, mas soh tenho mais uma dúvida(perdão), como eu faço para, por exemplo, pegar as primeiras “n” palavras de maior frequencia???
O que são as primeiras N palavras de maior freqüência? No teste acima, se você pedir as 11 primeiras palavras de maior freqüência, você teria um problema, uma vez que muitas palavras estão empatadas com a freqüência 1:
Palavras com a freqüência 4
[que]
Palavras com a freqüência 3
[a, de, e]
Palavras com a freqüência 2
[como, haveis, nem, no, não, se]
Palavras com a freqüência 1
[Considerai, Deus, E, Não, Salomão, ainda, amanhã, andeis, assim, beber, cam
po, comer, crescem, deles, digo, eles, em, erva, está, fiam, forno, fé, glória,
hoje, homens, inquietos, lançada, lírios, mais, os, ou, pergunteis, pois, pouca,
quanto, sua, toda, trabalham, um, veste, vestiu, vos, vós, é]
Imprimindo a tabela de freqüências
"InformacaoSistema.java" = 1
-- = 2
File = 2
Java, = 1
Os = 1
Para = 1
Um = 1
abstração. = 1
adicionais = 1
ainda = 1
argumento = 1
arquivo = 3
arquivos = 2
canRead(), = 1
canWrite(), = 1
caractere = 1
classe = 5
compreender = 1
construtores = 1
código = 1
delete() = 1
deleteOnExit(). = 1
diretório, = 1
diretórios = 1
disco. = 1
discos = 1
disponíveis, = 1
dos = 1
etc. = 1
exemplo, = 2
exists(), = 1
funcionalidade, = 1
identificar, = 1
informações = 3
lastModified() = 1
length() = 1
métodos = 1
nome = 1
nível = 1
observe = 1
obter = 1
operacional, = 1
operações = 1
permite = 1
permitem = 1
realizar = 1
recebe = 1
representar = 1
representação = 1
seguir = 1
separador = 1
sistema = 1
sistema, = 1
string = 1
todo, = 1
trazendo = 1
Com a primeira solução que você me deu eu encontrei as linhas com o resultado acima, que me mostra as palavras com as respectivas frequências, eu queria classificar o Map de maior a menor(frequência) pegando da posição 0 do Map até a posição 15 por exemplo.
Entendeu, se você quiser eu te explico todo o meu problema…
Obrigado pela atenção.
Dae thingol, poderia me ajudar??? nao consegui resolver o meu problema, sou novato em Java nunca tinha visto treeMap.
Valeu!!!