Простой подход:
// Объявите свой класс Candidate как:
class Candidate
{
int id;
String name;
Candidate(int id,String name)
{
this.id=id;
this.name=name;
}
public int getId()
{
return this.id;
}
public String getName()
{
return this.Name;
}
}
class Main
{
public static void main(String args[])
{
ArrayList<Candidate> al=new ArrayList<Candidate>();
al.add(new Candidate(1,"ABC"));
al.add(new Candidate(2,"XYZ"));
al.add(new Candidate(3,"PQR"));
Collections.sort(al,new SortByName());
System.out.println(al);
}
}
// Объявляем компаратор для сортировки по имени
class SortByName implements Comparator<Candidate>
{
public int compare(Candidate c1,Candidate c2)
{
return c1.getName().compareTo(c2.getName());
}
}
// Как вы разместили в ваш вопрос, что вы новичок в java, и согласно вашему требованию вы хотите иметь контейнер для хранения объектов класса, а затем сортировать их по имени своего имени. Следовательно, я использовал ArrayList из класса Collections, который очень прост в использовании и изучен для начинающих, я бы подумал, что вы должны пройти через базовую концепцию класса arraylist, Comparator, Collections и т. Д.
Если вам не нужно разрешать дубликаты, я бы, вероятно, использовал «TreeSet». –
Просьба пояснить вариант использования. Является ли сортировка важной особенностью? Вы упомянули вектор STL или список, которые по умолчанию не сортируются. – shiri
Этот вопрос почти наверняка был дан ответ несколько раз раньше, поэтому охота вокруг Stack Overflow для вопросов о сортировке пользовательских типов. «TreeSet' с настраиваемым «Comparator», переданным его конструктору, выполнит задание, и здесь обязательно будут ответы на SO, которые приводят пример кода для этого. –
Bobulous