ArraySortDemo

本文提供了一个Java程序示例,展示了如何对不同类型的数组(整数、字符串和对象)进行排序。通过对整数型、字符型及自定义对象类型数组的具体操作,详细说明了使用Java内置方法及自定义比较器进行排序的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package ArraySort;
import java.util.Arrays;
import java.util.Comparator;

public class ArraySortDemo {
/**
* 整数型数组排序
*/
public void sortIntArray() {
int[] arrayToSort = new int[] { 48, 5, 89, 80, 81, 23, 45, 16, 2 };
System.out.println("排序前");
for (int i = 0; i < arrayToSort.length; i++)
System.out.println(arrayToSort[i]);
// 调用数组的静态排序方法sort
Arrays.sort(arrayToSort);
System.out.println("排序后");
for (int i = 0; i < arrayToSort.length; i++)
System.out.println(arrayToSort[i]);
}

/**
* 字符型数组排序demo
*/
public void sortStringArray() {
String[] arrayToSort = new String[] { "Oscar", "Charlie", "Ryan",
"Adam", "David" };
System.out.println("排序前");
for (int i = 0; i < arrayToSort.length; i++)
System.out.println(arrayToSort[i]);
System.out.println("排序后");
//调用数组的静态排序方法sort
Arrays.sort(arrayToSort);

for (int i = 0; i < arrayToSort.length; i++)
System.out.println(arrayToSort[i]);
}

/**
* 对象数组排序demo
*/
public void sortObjectArray() {
Dog o1 = new Dog("dog1", 1);
Dog o2 = new Dog("dog2", 4);
Dog o3 = new Dog("dog3", 5);
Dog o4 = new Dog("dog4", 2);
Dog o5 = new Dog("dog5", 3);
Dog[] dogs = new Dog[] { o1, o2, o3, o4, o5 };
System.out.println("排序前");
for (int i = 0; i < dogs.length; i++) {
Dog dog = dogs[i];
System.out.println(dog.getName());
}
Arrays.sort(dogs, new ByWeightComparator());
System.out.println("排序后:");
for (int i = 0; i < dogs.length; i++) {
Dog dog = dogs[i];
System.out.println(dog.getName());
}
}
public static void main(String[] args) {
ArraySortDemo t = new ArraySortDemo();
t.sortIntArray();
t.sortStringArray();
t.sortObjectArray();
}
}

/**
*定义了一个Dog类
*/
class Dog {
private String name;
private int weight;

public Dog(String name, int weight) {
this.setName(name);
this.weight = weight;
}

public int getWeight() {
return weight;
}

public void setWeight(int weight) {
this.weight = weight;
}

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}
}
/**
* 因为要对对象进行排序,所以要实现java.util.Comparator接口的compare(T o1, T o2)方法,在该方法中自定义排序算法。
*/
class ByWeightComparator implements Comparator {
public final int compare(Object pFirst, Object pSecond) {
int aFirstWeight = ((Dog) pFirst).getWeight();
int aSecondWeight = ((Dog) pSecond).getWeight();
int diff = aFirstWeight - aSecondWeight;
if (diff > 0)
return 1;
if (diff < 0)
return -1;
else
return 0;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值