Criar Vetor de inteiros em Java

Olá,sou nova aqui no fórum, gostaria de saber como faço para criar um vetor de inteiros no Java? Até já tentei, mas não sei o que estou fazendo de errado, pois está dando um erro.

private Vector produtoId = new Vector ();

erro—> unexpected type;

se caso alguém souber o por que desde erro me respondam por favor.

Obrigada

Use Vector.

Ao definir os tipos genericos, deve ser utilizadas classes e não tipos primitivos

Faz isso não…não use Vector. Use um ArrayList.

ArrayList <Integer> list = new ArrayList<Integer>();

O que a galere tem contra Vector?

É lento por ser ThreadSafe.

  1. A Sun não recomenda mais o uso. Ela considera o Vector “legacy API”, ou seja, está lá só pq programas já foram escritos por ele;
  2. Todos os seus métodos são synchronized. O que significa que são mais lentos, e isso normalmente não é necessário (mesmo no caso de aplicações multi-thread);
  3. A interface foi “recalchutada” para suportar List. Portanto, existem métodos duplicados, fora da Collections API. É o caso de add e addElement que fazem exatamente a mesma coisa. Se você cair na bobeira de usar esses métodos, fica difícil trocar de implementação no futuro.

O que eu não entendendo é… pq a galera insiste no Vector?
Usar o ArrayList é tão fácil quanto.

Dá só uma olhada:
http://www.guj.com.br/posts/list/74068.java

[quote=rod.attack]Faz isso não…não use Vector. Use um ArrayList.

ArrayList <Integer> list = new ArrayList<Integer>();

Melhor ainda é declarar assim:

List<Integer> list = new ArrayList<Integer>();

Sempre crie as referências às colections com o tipo da interface, não da classe que as implementa. Isso te permite trocar facilmente de implementação a qualquer hora, e facilita também a interoperabilidade entre coleções diferentes.

  1. Por causa do nome. Quem quer usar vetores a primeira coisa que encontra é Vector.

  2. Documentação/tutoriais. Mesmo as Colelctions terem sido lançadas há mais de 10 anos, livros mais velhos, mesmo com revisões atuais, ainda ensinam Vector.

E acho que 3:
Pq alguns professores desatualizados ainda ensinam assim.

Infelizmente, tem gente que mesmo conhecendo e lendo sobre o ArrayList, ainda insistirá no Vector. Era mais para essas que a minha pergunta se dirigia.

OK…mas como faço para atribuir uma valor a uma determinada posição desse ArrayList,pois com Vector se usa setElementAt e com esse ArrayList é a mesma coisa??

Obrigada.

Com o ArrayList você usa o set. Aliás, o set funciona com o vector também.
Faz a mesma coisa que o setElementAt, mas é mais fácil de escrever.

Recomendo ler a documentação do List, vai descobrir muitos mais métodos que get e set, alguns úteis até.

Aproveitando,vou fazer uma outra pergunta de um outro erro que tb está o correndo…

quando eu vou comparar o valor desse Arraylist de inteiro que criei com um valor vindo do banco ele da um erro.

estou fazendo assim:

(onde ids é meu List e produto e vem do banco para fazer a comparação)

      for(int i=0;i<ids.size();i++) {
		if (ids.get(i)  == produto)
		{
		out.println(ids.get(i) + " -- "+ produto + "<br />");
	 }

	}

da o erro Incompatible operand types Object and int

porem meu List está como inteiro.

mais uma vez obrigada.

Qual o tipo de dado de produto?

OLá,o tipo de dado é int (id_produto).

Obrigada

Se essa lista ids for um ArrayList, deve dar certo essa comparação, pelo menos em Java 5 em diante.

Pode postar seu código completo, incluindo a declaração do List e da variável produto?

Ah, e por favor, use a tag code. Se ainda não sabe fazer isso, leia:
http://www.guj.com.br/posts/list/50115.java

<%

	int prod_cod,prod_qtd,produto;
	float prod_preco;
	String acao,id,id2,sql;
	id = "";
	

	Carrinho carrinho = new Carrinho();
	
	prod_cod    =Integer.parseInt(request.getParameter("codigo"));
	prod_qtd 	=Integer.parseInt(request.getParameter("qtd"));
    acao 		=request.getParameter("acao");	
  				
	if(session.getAttribute("carrinho")!= null) {
			carrinho = (Carrinho)session.getAttribute("carrinho");
	}
	
	carrinho.addItem(prod_cod,prod_qtd);
	 
	session.setAttribute("carrinho", carrinho);
   	
	 List  <integer> ids   = carrinho.getIds <integer>();
	 List   <integer> qtd   = carrinho.getQtd <integer>();
	
	for(int i=0;i<ids.size();i++) {
	  			
		id = id + ids.get(i) + ","; 
			   
	//	out.println(ids.get(i) + " - " + qtd.get(i) + "___" + "<br />");
	}
	
	id2 = id.substring(0,id.length()-1);
	sql = "SELECT * FROM produto where prod_id in "+"("+id2+")";
	Conexao c = new Conexao();
	ResultSet rs = c.executeQuery(sql);   
		
	while(rs.next()){	
			
	prod_preco = rs.getFloat("prod_preco");	
	produto = rs.getInt("prod_id"); 
	
	 for(int i=0;i<ids.size();i++) {
			if (ids.get(i) == produto)
			{
			out.println(ids.get(i) + " -- "+ produto + "<br />");
			}
		}
	}

%>

List<Integer> ids = carrinho.getIds(); // Integer é com letras maiúsculas, como toda classe.
List<Integer> qtd = carrinho.getQtd(); // não é necessária declarar o tipo ao obter de algum método, basta que eles sejam um List<Integer> em suas declarações.