Como distribuir de um vetor em outro?

Como eu distribuo de um vetor em outro, exemplo

vet 1[]{2,3,4,}
vet[] 2 

recebe {2,2,3,3,3,4,4,4,4,}

double c=0;
for (int i = 0; i < fi.length; i++) {
     if(xi[i]>fi[i]){
        
       c=fi[i];
    
     }
  
 
     for (int j = 0; j <c; j++) {
         rol[j]=xi[j];
    
        System.out.println("teste "+rol[j]);
    
     }

O primeiro vetor determina quantas vezes você tem de andar no segundo vetor eo tamanho do segundo vetor pela soma dos números.
Você precisa salvar a última posição que você percorreu no segundo vetor e adicionar quantas vezes vai percorrer de acordo com o número do primeiro vetor.

Ou seja,

for( int j = ultimaPosicao ; j < qtdVezes para nadar ; j++ )

public static void main(String[] args) {

	int[] vetor1 = new int[] { 2, 10, 4, 1, 5 };
	int[] vetor2;

	int tamanho = 0;
	for (int i = 0; i < vetor1.length; i++) {
		tamanho += vetor1[i];
	}

	vetor2 = new int[tamanho];
	System.out.println("vetor2 tamanho " + vetor2.length + " da posição 0 até " + (vetor2.length - 1));

	
	// determina o valor inicial p/ percorrer o vetor2
	int ultimaPosicao = 0;

	for (int i = 0; i < vetor1.length; i++) {

		// determina até onde vai o laço p/ o vetor2
		int qtdVezes = vetor1[i] + ultimaPosicao;

		System.out.println(
				"posição inicial: " + ultimaPosicao + " até: " + (qtdVezes - 1) + ", andou no total: " + qtdVezes);

		for (int j = ultimaPosicao; j < qtdVezes; j++) {
			vetor2[j] = vetor1[i];
			ultimaPosicao++;
		}
	}

	for (int i = 0; i < vetor2.length; i++) {
		System.out.println("vetor2[" + i + "]=" + vetor2[i]);
	}
}

Valeu cara! salvou minha pele!!!