arraylist的sort方法排序
时间: 2023-04-28 14:05:31 浏览: 96
ArrayList 的 sort 方法用于对 ArrayList 中的元素进行排序。默认情况下,它使用自然排序,即按照元素的自然顺序进行排序(如数字升序,字母降序)。也可以通过传递自定义的 Comparator 来实现自定义的排序。
语法:
```
void sort(Comparator c)
```
示例:
```
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(3);
numbers.add(36);
numbers.add(73);
numbers.add(40);
numbers.add(1);
Collections.sort(numbers);
System.out.println("List after the use of" +
" Collection.sort() :\n" + numbers);
```
输出:
```
List after the use of Collection.sort() :
[1, 3, 36, 40, 73]
```
相关问题
java arraylist排序sort
要对 Java 中的 ArrayList 进行排序,可以使用其自带的 sort 方法。具体步骤如下:
1. 确定排序规则,即按照哪个字段进行排序。
2. 在代码中调用 ArrayList 的 sort 方法,并传入 Comparator 对象,用于定义排序规则。Comparator 是一个接口,可以通过实现其 compare 方法来定义比较规则。
例如,如果要按照 ArrayList 中的元素值进行排序,可以使用以下代码:
```
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(1);
list.add(2);
Collections.sort(list);
```
如果要按照 ArrayList 中自定义对象的某个属性进行排序,可以使用以下代码:
```
ArrayList<MyObject> list = new ArrayList<MyObject>();
list.add(new MyObject(3, "A"));
list.add(new MyObject(1, "C"));
list.add(new MyObject(2, "B"));
Collections.sort(list, new Comparator<MyObject>() {
public int compare(MyObject o1, MyObject o2) {
return o1.getId() - o2.getId(); // 根据 id 属性升序排序
}
});
```
上述代码中,MyObject 是自定义的类,其中包含 id 和 name 两个属性。Comparator 的 compare 方法中,根据 id 属性的大小来定义排序规则。如果要降序排序,可以改为 return o2.getId() - o1.getId()。
需要注意的是,使用 sort 方法进行排序时,ArrayList 中的元素必须实现了 Comparable 接口,或者传入了一个自定义的 Comparator 对象。否则,会抛出 ClassCastException 异常。
java sort方法_Java ArrayList的不同排序方法
Java中的ArrayList类提供了多种排序方法,以下是其中的一些:
1. 使用Collections.sort()方法进行排序:
```
ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
Collections.sort(list);
```
2. 使用Comparator接口进行排序:
```
class LengthComparator implements Comparator<String> {
public int compare(String s1, String s2) {
return s1.length() - s2.length();
}
}
ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
Collections.sort(list, new LengthComparator());
```
3. 使用Lambda表达式进行排序:
```
ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
Collections.sort(list, (s1, s2) -> s1.length() - s2.length());
```
另外,ArrayList还提供了sort()方法和parallelSort()方法,这两种方法可以在多线程环境下进行排序,但需要注意线程安全问题。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)