Usuário define quantas instacias serão feitas para um obje

Bom estou com o seguinte problema:
Preciso fazer um programa que ordene um vetor usando threads, o número de threads que o programa irá usar para odenar o vetor é definido pelo usuário no momento da execução.
Alguém sabe com faço para instanciar obejetos dependedo do número de instancias que o usuário definiu.

Por exemplo se o usuário me disser que vai usar 2 threads como faço para instanciar 2 vezes o objeto.
Tentei desta forma mas não funcionou:

Objeto vet[i]; vet[i]=new Obejeto;
Alguém sabe como instanciar objetos usando vetor?

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos[/color][/size] :joia:

Seria algo do tipo:

...

MinhaThread threads[] = new MinhaThread[ numeroInstancias ]; //  Array de  Threads com o número definido pelo usuário

for ( int i = 0; i < threads.length; i++ ) // Popula o Array com instâncias de MinhaThread
    threads[ i ] = new MinhaThread();

...

Tem que ver como que você está tentando fazer. Se quiser postar teu código! :grin:

Valeu!

Att,

Pablo Alves

Cara valeu pela ajuda, estou começando com java agora e não conheço muito a liguagem.
Deu alguns erros na execução vou postar meu código se vc puder me dar uma ajuda ou quem estiver online puder me ajuda. preciso instanciar objetos de forma que usuário define quantas são as instancias na hora da execução:

public class Vetor {
	public int Vet[],Vet2[];
	private int NumeroInicial,NumeroFinal,UltimaPosicao,PrimeiraPosicao,QTDPosicao;
	
	public void Inicializa(){
		Vet=new int[100001];
		Vet2=new int[100001];
		NumeroInicial=0;
		NumeroFinal=0;
		UltimaPosicao=0;
		PrimeiraPosicao=0;
		QTDPosicao=0;
	}
	
	public void InsereVetor(){ 
       	int i=0;
       	while(i <= 100000){
       		if(i <= Vet.length)
                Vet[i] =(int)(Math.random()*100000);
       	i++;
       	}
	}
	
	synchronized public void OrdenaVetor(int NI,int NF, int VetAux[]){
		int Aux1,Aux2;
		NumeroInicial=NI;
		NumeroFinal=NF;
		QTDPosicao=0;
		
		for(int i=0; i<=100000; i++){
			if((Vet[i]>=NumeroInicial)&&(Vet[i]<=NumeroFinal)){
				VetAux[0]=Vet[i];
				i=100000;
			}
		}
		
		for(int j=0; j<=100000; j++){
			if((Vet[j]>=NumeroInicial)&&(Vet[j]<=NumeroFinal)){
			if(Vet[j]>=VetAux[QTDPosicao]){
				QTDPosicao=QTDPosicao+1;
				
				VetAux[QTDPosicao]=Vet[j];
			}else{
				Aux1=Vet[j];
				for(int a=0;a<=QTDPosicao;a++){
					if(VetAux[a]>Aux1){
						Aux2=VetAux[a];
						VetAux[a]=Aux1;
						Aux1=Aux2;
					}
				}
				if (j<100000){
					QTDPosicao=QTDPosicao+1;
					
					VetAux[QTDPosicao]=Aux1;
				}
				
			}
		}
			}
	}
		
	synchronized public void InsereOrdenado(int VetAux[]){
		int n=0;
		UltimaPosicao=UltimaPosicao+QTDPosicao;
		for (int b=PrimeiraPosicao; b<=UltimaPosicao; b++){
			Vet2[b]=VetAux[n];
			n++;
		}
		PrimeiraPosicao=PrimeiraPosicao+QTDPosicao;
	}
	
	public void ImprimeVetor(int PIni,int PFin){
		int i=PIni;
		
       	while(i <= PFin){
       		if(i <= Vet2.length){
                System.out.println(Vet2[i]+" i "+i);
                
       		}
       		i++;
       	
       	}
       	System.out.println("Ultimaposicao "+UltimaPosicao+" QTDPosicao "+QTDPosicao+" PrimeiraPosicao "+PrimeiraPosicao);
	}
}



class Ordena extends Thread{
	private int VetAux[];
	private Vetor V;
	private int NI,NF;
	
	public Ordena(Vetor VAux,int I,int F){
		V=VAux;
		NI=I;
		NF=F;
		VetAux=new int[100001];
	}
	
	synchronized public void Run(){
		V.OrdenaVetor(NI,NF,VetAux);
		V.InsereOrdenado(VetAux);
	}
	
}



public class Inicio {

	public static void main(String[] args) {
		
		
		
		Vetor V;
		V = new Vetor();
		V.Inicializa();
		V.InsereVetor();

		threads[] = new Ordena(V,0,100000) ;
		  //  Array de  Threads com o número definido pelo usuário 
		for ( int i = 0; i < threads.length; i++ ) // Popula o Array com instâncias de MinhaThread 
		    threads[ i ] = new Ordena(V,0,10000); 

		
		
		
		V.ImprimeVetor(0,100000);
		
	}
}

Conto com a ajuda de alguem pois preciso entregar o trabalho na segunda feira Valeu…

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos[/color][/size] :joia:

Ola Xavier_RS segue alguns erros que eu achei nas tuas classes.

Na classe Vetor.java

synchronized public void InsereOrdenado(int VetAux[]){
	int n=0;
	UltimaPosicao=UltimaPosicao+QTDPosicao;
	for (int b=PrimeiraPosicao; b<=UltimaPosicao; b++){
	
/*
ESSA ATRIBUIÇÃO ESTÁ INCORRETA, POIS TU ESTAS TENTANDO ATRIBUIR UM INT ( VetAux[n] )  
PARA UM ARRAY DE INT ( Vet2 ). ACREDITO QUE O TU QUERES FAZER EH ATRIBUIR O VALOR DE
( VetAux[n] ) PARA UMA POSIÇÃO DE VET2, SENDO ASSIM TERIA QUE SER ALGO ASSIM:
vet2[ posição_que_eu_quero] = vetAux[n];
*/
	Vet2=VetAux[n];


	n++;
	}

Na classe Inicio.java

[code]threads[] = new Ordena(V,0,100000) ;

/*
SE A TUA IDEIA ERA DECLAR UM ARRAY DO TIPO THEREAD ESTA ERRADO.

DECLARAÇÃO DE UM ARRAY: TIPO_DO_ARRAY NOME_VARIAVEL[] = new TIPO_DO_ARRAY[ NUMERO_POSICOES ] ;

SE FOR ISSO FICARIA MAIS OU MENOS ASSIM:

Theread threads[] = new Thread[ numero_x ]; // teria que importar: java.lang.Thread;

*/[/code]

Depois disso tudo a lógica do teu programa tem que ser verificada.

Espero que ajude.

8O

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos[/color][/size] :joia: