java集合的冒泡排序
时间: 2023-10-12 16:14:08 浏览: 32
可以使用以下代码进行冒泡排序:
```
public static void bubbleSort(int[] arr){
int n = arr.length;
for(int i = 0; i < n-1; i++){
for(int j = 0; j < n-1-i; j++){
if(arr[j] > arr[j+1]){
// 交换 arr[j] 和 arr[j+1]
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
```
这段代码使用了双重循环,外层循环控制次数,内层循环控制每次比较和交换。
相关问题
java 集合冒泡排序
Java集合是一种用于存储和操作数据的容器。冒泡排序是一种简单的排序算法,它通过多次比较和交换相邻元素来将最大(或最小)的元素逐步移动到列表的末尾。
在Java中,可以使用集合框架中的List接口和Collections类来实现冒泡排序。下面是一个示例代码:
```java
import java.util.List;
import java.util.Collections;
public class BubbleSort {
public static void bubbleSort(List<Integer> list) {
int n = list.size();
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (list.get(j) > list.get(j + 1)) {
Collections.swap(list, j, j + 1);
}
}
}
}
public static void main(String[] args) {
List<Integer> numbers = List.of(5, 2, 8, 1, 9);
System.out.println("Before sorting: " + numbers);
bubbleSort(numbers);
System.out.println("After sorting: " + numbers);
}
}
```
上述代码中,我们定义了一个`bubbleSort`方法来实现冒泡排序。它使用两个嵌套的循环来比较相邻元素,并在需要时交换它们的位置。在每次外部循环结束后,最大的元素将被移动到列表的末尾。
在`main`方法中,我们创建了一个包含一些整数的列表,并调用`bubbleSort`方法对列表进行排序。最后,我们打印出排序后的列表。
java 对象集合冒泡排序实现
可以通过实现 Comparator 接口来实现对象集合的冒泡排序。具体实现方法可以参考以下代码:
```java
public class BubbleSort {
public static void bubbleSort(List<Object> list, Comparator<Object> comparator) {
int n = list.size();
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (comparator.compare(list.get(j), list.get(j + 1)) > 0) {
Object temp = list.get(j);
list.set(j, list.get(j + 1));
list.set(j + 1, temp);
}
}
}
}
}
```
调用示例:
```java
List<Person> list = new ArrayList<>();
list.add(new Person("Tom", 20));
list.add(new Person("Jerry", 18));
list.add(new Person("Peter", 22));
BubbleSort.bubbleSort(list, new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
return p1.getAge() - p2.getAge();
}
});
```
以上代码实现了对一个包含 Person 对象的集合按照年龄从小到大排序的功能。