Ordem alfabética em lista

20/01/2020

0

O código abaixo retorna uma lista com os nomes em ordem alfabética, a questão é que ao invés de pegar o nome eu quero pegar o sobrenome e ordenar por ordem alfabética, alguma ajuda?




import java.util.*;

public class Main {
public static void main(String[] args) {
String[] alunos = new String[] { "Violet Miller", "Elijah Hayes", "Audrey Hayes", "Lillian Diaz", "Madison Anderson", "Christopher Taylor", "Samuel Williams", "Skylar Miller", "Bella Johnson", "Scarlett Anderson", "Natalie Hayes"};

List list = Arrays.asList(alunos);
Collections.sort(list);
System.out.println(list);
}
}
Gabriele Sousa

Gabriele Sousa

Responder

Posts

22/01/2020

Paulo Kennedy

Olá, Gabriele!
A solução que eu achei para o seu problema foi criar outro vetor para armazenar apenas os sobrenomes dos alunos. Ficou assim:
import java.util.*;

class Main {
  public static void main(String[] args) {

    String[] alunos = new String[] { "Violet Miller", "Elijah Hayes", "Audrey Hayes", "Lillian Diaz", "Madison Anderson", "Christopher Taylor", "Samuel Williams", "Skylar Miller", "Bella Johnson", "Scarlett Anderson", "Natalie Hayes"};

    String[] sobrenomesAlunos = new String[alunos.length]; //criei o vetor para armazenar os sobrenomes com o mesmo tamanho do vetor alunos

    for(int i = 0; i < alunos.length; i++){ //for para preencher o vetor
      sobrenomesAlunos[i] = alunos[i].substring(alunos[i].indexOf(" ")+1); // aqui ele vai pegar cada posição do vetor que você tinha criado e pegar apenas a parte da string que está depois do espaço (" "), ou seja, apenas o sobrenome

    }

    List list = Arrays.asList(sobrenomesAlunos); //E aqui exibo o vetor com os sobrenomes
    Collections.sort(list);
    System.out.println(list);
  }
}


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar