Below is the bean class:
public class bean {
private String Name;
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
@Override
public String toString() {
return "bean [Name=" + Name + "]";
}
}
Below is my java class where i am trying to sort the list of beans in ascending order(i mean alphabetical order):
public class Test{
public static void main(String[] args) {
bean b1 = new bean();
bean b2 = new bean();
bean b3 = new bean();
List<bean> beanList = new ArrayList<bean>();
b1.setName("b");
b2.setName("a");
b3.setName("Z");
beanList.add(b1);
beanList.add(b2);
beanList.add(b3);
}
}
i am unable to achieve the sorting of the bean value in alphabetical order like a,b,z. can anyone please suggest
You are sorting 2 times and that is more that what you need
1st Test doesnt need to implement comparable...
public class Test {
public static void main(String[] args) {
Bean b1 = new Bean();
Bean b2 = new Bean();
Bean b3 = new Bean();
List<Bean> beanList = new ArrayList<Bean>();
b1.setName("b");
b2.setName("a");
b3.setName("Z");
beanList.add(b1);
beanList.add(b2);
beanList.add(b3);
Collections.sort(beanList);
System.out.println("finally " + beanList);
}
}
and the bean class should compare the strings since that is the sort criteria
public class Bean implements Comparable<Bean> {
private String Name;
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
@Override
public String toString() {
return "bean [Name=" + Name + "]";
}
@Override
public int compareTo(Bean o) {
return o.getName().compareTo(this.getName());
}
}
you can for sure add more than one field to the bean class, example: lastname or you can use an anonymous comparator and sort with yoor own criteria
public class Bean implements Comparable<Bean> {
private String name;
private String lastName;
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Bean [name=" + name + ", lastName=" + lastName + "]";
}
@Override
public int compareTo(Bean o) {
return this.getName().compareTo(o.getName());
}
}