在这个程序中,我在 Simple Array 中以字母方式对字符串进行排序,但是我如何使用 List 或 ArrayList 做同样的事情,假设我有一个学生类,我想按字母顺序排列名称,那么我该怎么做呢?
public class CityData{
public static String citynames[]= {"Hyderabad","Karachi","Abtabad","AzadKashmir"};
public static void main(String args[]) {
int size=citynames.length;
String temp=null;
for(int i=0; i<size; i++) {
for(int j=i+1; j<size; j++) {
if(citynames[i].compareTo(citynames[j])>0) {
temp=citynames[i];
citynames[i]=citynames[j];
citynames[j]=temp; }
}
System.out.println(citynames[i]);
}
}
}
结果:
Abtabad
AzadKashmir
Hyderabad
Karachi
您可以根据您的要求对集合进行排序。
如果集合的输入对象实现了Comparable 接口,如 String、Integer、Double 类,那么您可以直接使用Collections util 类中的Collections.sort()方法
List<String> al = new ArrayList<>();
al.add("Hyderabad");
al.add("Karachi");
al.add("Abtabad");
al.add("AzadKashmir");
al.add("Udupi");
al.add("Jammu");
Collections.sort(al);
或者您可以根据您的要求对列表进行排序。(按字母顺序倒序)
Collections.sort(al, (str1, str2) -> str2.compareTo(str1));
如果不想使用 Collections 类,则直接使用 List 接口中的 sort() 方法。
一世。字母顺序
al.sort((str1, str2) -> str1.compareTo(str1));
ii. 逆字母顺序
al.sort((str1, str2) -> str2.compareTo(str1));
上述解决方案适用于类实现可比较接口的对象,如字符串、整数、双精度等......
何时对自定义类进行排序,您需要为 Comparator 实现按 Comparator 类或 Lambda 表达式排序。
假设您有一个学生类,并且需要按城市名称排序。您可以使用以下代码。
public class Student {
private String name;
private String city;
public Student() {}
public Student(String name, String city) {
this.name = name;
this.city = city;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
@Override
public String toString() {
return "Student -> [name=" + name + ", city=" + city + "]";
}
}
Student st1 = new Student("Samir", "Hyderabad");
Student st2 = new Student("Akbar", "Karachi");
Student st3 = new Student("Ramu", "Abtabad");
Student st4 = new Student("Rahim", "AzadKashmir");
Student st5 = new Student("Sardar", "Udupi");
Student st6 = new Student("Fahad khan", "Jammu");
List<Student> al2 = new ArrayList<>();
al2.add(st1);
al2.add(st2);
al2.add(st3);
al2.add(st4);
al2.add(st5);
al2.add(st6);
//Alphabetical Order
Collections.sort(al2, (std1, std2) -> std1.getCity().compareTo(std2.getCity()));
//Reverse Alphabetical Order
Collections.sort(al2, (std1, std2) -> std2.getCity().compareTo(std1.getCity()));
//Alphabetical Order
al2.sort((std1, std2) -> std1.getCity().compareTo(std2.getCity()));
//Reverse Alphabetical Order
al2.sort((std1, std2) -> std1.getCity().compareTo(std2.getCity()));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句