[Resolvido] Como retornar array

No meu case 2 queria retornar todos os dados do array. _
Neste caso so consigo retornar 1 dado.
Nao achei uma logica ainda ;/

import java.util.InputMismatchException;
import java.util.Scanner;


public class ReceitaFederal {

	/**
	 * Você deve criar um programa de apoio a receita federal.

	Uma pessoa física tem nome, cpf e renda. Receba os dados de várias pessoas
	 de acordo com o desejo do usuário.
	 No término, abra um menu de opções para que o usuário possa escolher 
	 entre as seguintes ações:

1- Listar todas as pessoas;

2- Apresentar a pessoa que tem a maior renda;

	 */
	public static void main(String[] args) {
		
		int quantidadePessoas = lerInt("Informe a quantidade de pessoas: ", "Quantidade fora do limite permitido!", "Informe a quantidade em valor numerico!", 1, 10000);
		PessoaFisica[] pessoafisica = new PessoaFisica[quantidadePessoas];
		popularPessoa(pessoafisica);
		imprime(pessoafisica, "\t#####Relatorio Geral de Cadastro#####\n");
		
	}

	
	public static void imprime(PessoaFisica[] pessoafisica, String cabecalho) {
		int opcao = 0;
		
		System.out.println("1- Listar todas as pessoas\n2- Apresentar a pessoa que tem a maior renda");
		opcao = lerInt("Escolha uma opção do menu: ", "Escolha uma opcao de 1 a 2", "Insira um valor numerico", 1, 2);
		switch (opcao) {
		case 1:
			System.out.println(cabecalho);
			for (int i = 0; i < pessoafisica.length; i++) {
				System.out.println("Nome: "+pessoafisica[i].nome);
				System.out.println("Renda: "+pessoafisica[i].renda);
				System.out.println("CPF: "+pessoafisica[i].cpf+"\n_______________");
			}
			break;
		case 2:
			
			System.out.println("Maior Renda: "+MaiorRenda(pessoafisica));
			
		default:
			break;
		}
	
	}

	
	public static double MaiorRenda(PessoaFisica[] pessoafisica) {
		
		double maiorRenda = 0;
		
		for (int i = 0; i < pessoafisica.length; i++) {
			if(pessoafisica[i].renda > maiorRenda){
				maiorRenda = pessoafisica[i].renda;		
			}		
		}
		return maiorRenda;
	}

	
		
		public static void popularPessoa(PessoaFisica[] pessoafisica) {
		for (int i = 0; i < pessoafisica.length; i++) {
			pessoafisica[i] = lerPessoaFisica();
		}
	}
	
	private static PessoaFisica lerPessoaFisica() {
		PessoaFisica pf = new PessoaFisica();
		pf.nome= lerString("Insira o nome: ");
		pf.renda = lerDouble("Insira a renda em R$:", "valor invalido!", "A Renda deve ser em R$!",1 , 100000);
		pf.cpf= lerString("Insira o CPF: ");	
		return pf;
	}
	public static int lerInt(String msg,String erroRange,String erroConsole,int min , int max){
		int valor = 0;
		boolean erro;
		do {
			valor = lerInt(msg, erroConsole);
			erro = valor < min || valor > max;
			if(erro)
				System.out.println(erroRange);
		}while(erro);
		return valor;
		
	}
	
	
	public static int lerInt(String msg, String erroConsole){
		int valor = 0;
		boolean erro;
		do {
			try {
				erro = false;
				valor = lerInt(msg);
			} catch (InputMismatchException e) {
				erro = true;
				System.out.println(erroConsole);
			}
		} while(erro);
		return valor;
	}
	
	public static int lerInt(String msg){
		System.out.println(msg);
		int valor = new Scanner(System.in).nextInt();
		return valor;
	}
	
	public static String lerString(String msg){
		System.out.println(msg);
		String mensagem = new Scanner(System.in).nextLine();
		return mensagem;
	}
	
	public static double lerDouble(String msg, String erroRange,String erroConsole, int min, int max){
		double valor = 0;
		boolean erro;
		
		do {
			valor=lerDouble(msg, erroConsole);
			erro = valor < min || valor > max;
			if(erro)
				System.out.println(erroRange);
		} while(erro);
		return valor;
		
	}
	
	
	public static double lerDouble(String msg, String erroConsole){
		double valor = 0;
		boolean erro;	
		do {
			try {
				erro = false;
				valor = lerDouble(msg);
			} catch (InputMismatchException e) {
				erro = true;
				System.out.println(erroConsole);
			}	
		}while(erro);		
		return valor;
		
	}
	
	
	public static double lerDouble(String msg){
		System.out.println(msg);
		double valor = new Scanner(System.in).nextDouble();
		return valor;
	}

}

Tu está imprimindo o retorno do método MaiorRenda() sendo que esse método só retorna um double, então tu só vai mostrar esse double.
No caso você teria que criar um método que retorne todos os dados que você quer que mostre da pessoa com maior renda, você poderia retornar um objeto contendo esses dados ou um array,
e depois era só imprimir os dados concatenando os atributos desse objeto ou array no System.out.print.

Exemplo:

 public static PessoaFisica MaiorRenda(PessoaFisica[] pessoafisica) {  
          
        double maiorRenda = 0;  
        int indice = 0;
        for (int i = 0; i < pessoafisica.length; i++) {  
            if(pessoafisica[i].renda > maiorRenda){  
                maiorRenda = pessoafisica[i].renda;
                indice = i;
            }         
        }  
        return PessoaFisica[indice];  
    } 

Desse jeito tu retorna só o objeto da pessoa física com maior renda,
então tu poderia concatenar no print qualquer atributo que você quiser mostrar dessa pessoa.

valeeeeeeeeeew \o/
E isso mesmo, grande ajuda carlinbh fiz as alterações aqui e consegui retornar os dados
(:

public static PessoaFisica MaiorRenda(PessoaFisica[] pessoafisica) {    
        
	       double maiorRenda = 0;    
	       int indice = 0;  
	       for (int i = 0; i < pessoafisica.length; i++) {    
	           if(pessoafisica[i].renda > maiorRenda){    
	               maiorRenda = pessoafisica[i].renda;  
	               indice = i;  
	           }           
	       }
	       System.out.println(pessoafisica[indice].nome);
	       System.out.println(pessoafisica[indice].renda);
	       System.out.println(pessoafisica[indice].cpf);
	       return pessoafisica[indice];
	       
	   } 
1 curtida