Ajuda Algoritmo java

Olá pessoal eu quero a vossa ajuda para resolver este algoritmo…
andei escrevendo no papel esse algoritmo mas quando passei pra java não esta a funcionar direito.

O algoritmo vai gerar aleatóriamente um numero (n) e esse numero vai ser convertido em Binário e depois de ser convertido em binário o algoritmo vai percorer a array e analizar a posição dos numeros que se encontram na lista L. se encontrarem na posição 0 Fica na L2(lista 2) e o que se encontrar na posição 1 vai a lista L1. Ex:
L=[14,10,20,36]
*** 0 -1- 0 - 1

Binário = 1010

L1={36,10}
L2={14,20}

é isso-: será que alguem pode corigir o erro que esta a dar ai… Ja tentei mas nao consegui, e como sou novo a programar em java vim pedir a vossa ajudda.
obrigado a todos.

public class Lista5 {

 public static void main(String[] args, int j) {

int[]n=1+(int)10*Math.random();
        int [] L = {2,4,9,12};
        for(int i = 1;i<=limite;i++);
        int n = 0;
        int[]mascara = converter(i, n);
        int[]L1= new int [n];
        int[]L2= new int [n];
            for(j=0;j<n;j++){
              if(mascara[j]==1)
                  L1[j]=L[j];
              else
                  L2[j]=L[j];
            }
            System.out.println();
        }
    public int[]convert(int i,int n);
        int[]resultado = new int [n];
        for(j=0<=n;j++){
            resultado[n-j]=i MOD 2;
            i=1/2;
                    }
        return resultado;
    }
}

Bom, vamos lá.
Pelo que eu entendi, o erro está aqui

public class Lista5 {  
    
public static void main(String[] args, int j) {  
  
int[]n=1+(int)10*Math.random();//isto retorna um double  
        int [] L = {2,4,9,12};  
        for(int i = 1;i<=limite;i++);//de onde vem a variável limite? for sem "corpo"? 
        int n = 0;  //n já foi instanciado como array de int
        int[]mascara = converter(i, n);  //de onde vem i?
        int[]L1= new int [n];  
        int[]L2= new int [n];  
            for(j=0;j<n;j++){  
              if(mascara[j]==1)  
                  L1[j]=L[j];  
              else  
                  L2[j]=L[j];  
            }  
            System.out.println();  
        }  
    public int[]convert(int i,int n); //método sem corpo? 
        int[]resultado = new int [n];  //de onde vem n?
        for(j=0<=n;j++){  //j foi instanciado onde?
            resultado[n-j]=i MOD 2;  // o que é MOD? Para que serve? de onde vem esse n? e esse i?
            i=1/2;  
                    }  
        return resultado;  
    }  
}  

isso vai ajudar a corrigir algumas coisas

Vou esprimentar pra ver, obrigado pela ajuda…

pois… o problema é o seguinte é k eu nao sei como corigir esses erros…
Quando tento corigir aparece-me outro.

[quote=otniel]pois… o problema é o seguinte é k eu nao sei como corigir esses erros…
Quando tento corigir aparece-me outro.[/quote]
Vão aparecer inúmeros.
Mas precisa corrigi-los.
Vai modificando e tentando.

Consegui corigir alguns erros… e ficou desta forma… o unico erro que eu nao sei de onde vem é o (i). mas o (i) vem do ciclo for.


package lista5;

/**
 *
 * @author otniel
 */
public class Lista5 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args, int j, int limite) {
        // TODO code application logic here
        
        int n = (int) (1+(int)10*Math.random());//isto retorna um double     
        int [] L = {2,4,9,12};     
        for(int i = 1;i<=limite;i++);
 
        int[]mascara = converter(i,n);  
        int[]L1= new int [n];     
        int[]L2= new int [n];     
            for(j=0;j<n;j++){     
              if(mascara[j]==1)     
                  L1[j]=L[j];     
              else     
                  L2[j]=L[j];     
            }     
            System.out.println();     
        }     
    public int[]convert(int i,int n, int j){ //método sem corpo?   
        int[]resultado = new int [n];  //de onde vem n?   
        for(j=0;j<=n;j++){   
            resultado[n-j]=i;  // o que é MOD? Para que serve? de onde vem esse n? e esse i?   
            i=1/2;     
                    }     
        return resultado;     
    }     
}

[quote=otniel]Consegui corigir alguns erros… e ficou desta forma… o unico erro que eu nao sei de onde vem é o (i). mas o (i) vem do ciclo for.

[code]

package lista5;

public class Lista5 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args, int j, int limite) {
    // TODO code application logic here
    
    int n = (int) (1+(int)10*Math.random());    
    int [] L = {2,4,9,12};     
    for(int i = 1;i<=limite;i++);

    int[]mascara = converter(i,n);  
    int[]L1= new int [n];     
    int[]L2= new int [n];     
        for(j=0;j<n;j++){     
          if(mascara[j]==1)     
              L1[j]=L[j];     
          else     
              L2[j]=L[j];     
        }     
        System.out.println();     
    }     
public int[]convert(int i,int n, int j){    
    int[]resultado = new int [n];     
    for(j=0;j<=n;j++){   
        resultado[n-j]=i;     
        i=1/2;     
                }     
    return resultado;     
}     

}

[/code][/quote]