Problema 19

Metoda 1

import java.util.Comparator;

import java.util.SortedSet;

import java.util.TreeSet;

class Persoana{

private String nume;

private int varsta;

public Persoana(String nume, int varsta){

this.nume=nume;

this.varsta=varsta;

}

public String getNume() {

return nume;

}

public String toString(){

return "Nume persoana: "+nume+" Varsta: "+varsta;

}

}

class GrupPersoane{

private SortedSet<Persoana> grup=new TreeSet<>(Comparator.comparing(Persoana::getNume));

public void add(Persoana p){

grup.add(p);

}

public String toString(){

return grup.toString();

}

}

public class Main {

public static void main(String[] args) {

GrupPersoane grup=new GrupPersoane();

Persoana p1=new Persoana("B",20);

Persoana p2=new Persoana ("A",25);

Persoana p3=new Persoana("C",30);

grup.add(p1);

grup.add(p2);

grup.add(p3);

System.out.println(grup);

}

}

Metoda 2

Facem overrding la metoda "compareTo" din interfata Comparable

import java.util.SortedSet;

import java.util.TreeSet;

class Persoana implements Comparable{

private String nume;

private int varsta;

public Persoana(String nume, int varsta){

this.nume=nume;

this.varsta=varsta;

}

public String getNume() {

return nume;

}

public String toString(){

return "Nume persoana: "+nume+" Varsta: "+varsta;

}

public int compareTo(Object o) {

return this.nume.compareTo(((Persoana)o).getNume());

}

}

class GrupPersoane{

private SortedSet<Persoana> grup=new TreeSet<>();

public void add(Persoana p){

grup.add(p);

}

public String toString(){

return grup.toString();

}

}

public class Main {

public static void main(String[] args) {

GrupPersoane grup=new GrupPersoane();

Persoana p1=new Persoana("B",20);

Persoana p2=new Persoana ("A",25);

Persoana p3=new Persoana("C",30);

grup.add(p1);

grup.add(p2);

grup.add(p3);

System.out.println(grup);

}

}