Salve a tutti, vi espongo il mio problema: io devo costruire un algoritmo che dati due vettore v1 e v2 mi dia un vettore v3 che comprenda solo gli elementi di v1 contenuti almeno 2 volte in v2. Per fare ciò ho scritto il seguente codice:
codice:
import java.util.Scanner;

public class Vet {
	public static void main (String [] args) {
	Scanner sc = new Scanner(System.in);
	System.out.println("Dimensione del primo vettore ?");
	dim=sc.nextInt();
	int[] v1 = new int[dim];
	System.out.println("Dimensione del secondo vettore ?");
	dimm=sc.nextInt;
	int[] v2 = new int[dimm];
	leggi (v1);
	leggi (v2);
	costruisciVettore (v1, v2);
	stampa (costruisciVettore (v1, v2));
	}
	
	public static int[] costruisciVettore (int []v1, int[]v2) {
	int[] v3 = new int[v1.length];
	int pos=o;
	for (i=0 ; i<v1.lenght ; i++){
		if (presente(v2, v1[i]))
		v1[i]=v3[]
		}
	v3=ridimensiona(v3, pos);
	return v3;
	}
	
	public static int[] ridimensiona (int[] v, int val) {
	int[] nuovov= new int[val];
	for (int=0; i<val ; i++)
	{
		nuovoV[i]= v[i];
	}
	return nuovoV;
	}
	
	public static int presente(int[]v , int val) {
	int cont=0;
	for (int i=0 ; i<v.length; i++) {
		if (v[i]=val)
			cont++;
		if (cont=2)
		return val;}
	}
	
	public static void leggi (int[]v) {
	Scanner sc = new Scanner(System.in);
	for (int i=o; i<v.length; i++){
		System.out.println("elemento in posizione: "+i);
		v[i]=sc.nextInt();
	}
	}
	
	public static void stampa (int[]v) {
	for (int i=0; i<v.legth; i++)
		System.out.println(v[i]+"elemento in posizione: "+i);
	}
}
Il problema sorge quando vado a compilarlo: il compilatore mi da un illegal start of expression su ogni riga di inizio funzione cioè su:

codice:
public static int[] ridimensiona (int[] v, int val) {
codice:
public static int presente(int[]v , int val) {
codice:
public static void leggi (int[]v) {
ecc..

Non capisco dove stia il problema, che c'è di sbagliato in public static ....... ???