java中按名称无视大小写升序排序_如何在Java中按升序对ArrayList进行排序?
时间: 2024-02-18 15:02:27 浏览: 59
Java ArrayList的不同排序方法
如果要按照对象的名称属性进行升序排序,并且忽略大小写,需要实现 `Comparator` 接口,并重写 `compare` 方法,使用 `String` 类的 `compareToIgnoreCase` 方法比较。示例如下:
假设有一个 `Person` 类,其中有一个 `name` 属性表示姓名,代码如下:
```java
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
'}';
}
}
```
现在,我们创建一个包含多个 `Person` 对象的 `ArrayList`,并按照 `name` 属性进行升序排序(忽略大小写),示例如下:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class SortArrayListByNameIgnoreCase {
public static void main(String[] args) {
ArrayList<Person> list = new ArrayList<>();
list.add(new Person("Tom"));
list.add(new Person("alice"));
list.add(new Person("BOB"));
System.out.println("Before sorting: " + list);
Collections.sort(list, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getName().compareToIgnoreCase(o2.getName());
}
});
System.out.println("After sorting: " + list);
}
}
```
输出结果为:
```
Before sorting: [Person{name='Tom'}, Person{name='alice'}, Person{name='BOB'}]
After sorting: [Person{name='BOB'}, Person{name='alice'}, Person{name='Tom'}]
```
可以看到,按照 `name` 属性进行了升序排序,并且忽略了大小写。
阅读全文