package
test;
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.print(arrayToSort[i]
+
"
,
"
);
}
//
调用数组的静态排序方法sort
Arrays.sort(arrayToSort);
System.out.println();
System.out.println(
"
排序后:
"
);
for
(
int
i
=
0
; i
<
arrayToSort.length; i
++
){
System.out.print(arrayToSort[i]
+
"
,
"
);
}
}
/**
* 字符型数组排序demo
*/
public
void
sortStringArray() {
String[] arrayToSort
=
new
String[] {
"
Oscar
"
,
"
Charlie
"
,
"
Ryan
"
,
"
Adam
"
,
"
David
"
,
"
aff
"
,
"
Aff
"
};
System.out.println();
System.out.println(
"
字符型数组排序,排序前:
"
);
for
(
int
i
=
0
; i
<
arrayToSort.length; i
++
){
System.out.print(arrayToSort[i]
+
"
,
"
);
}
System.out.println();
System.out.println(
"
排序后:
"
);
//
调用数组的静态排序方法sort
Arrays.sort(arrayToSort);
for
(
int
i
=
0
; i
<
arrayToSort.length; i
++
){
System.out.print(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();
System.out.println(
"
对象数组排序排序前:
"
);
for
(
int
i
=
0
; i
<
dogs.length; i
++
) {
Dog dog
=
dogs[i];
System.out.print(dog.getName()
+
"
[
"
+
dog.getWeight()
+
"
],
"
);
}
Arrays.sort(dogs,
new
ByWeightComparator());
System.out.println();
System.out.println(
"
排序后:
"
);
for
(
int
i
=
0
; i
<
dogs.length; i
++
) {
Dog dog
=
dogs[i];
System.out.print(dog.getName()
+
"
[
"
+
dog.getWeight()
+
"
],
"
);
}
}
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
;
}
}
运行结果:
整数型数组排序,排序前:
48
,
5
,
89
,
80
,
81
,
23
,
45
,
16
,
2
,
排序后:
2
,
5
,
16
,
23
,
45
,
48
,
80
,
81
,
89
,
字符型数组排序,排序前:
Oscar,Charlie,Ryan,Adam,David,aff,Aff,
排序后:
Adam,Aff,Charlie,David,Oscar,Ryan,aff,
对象数组排序排序前:
dog1[
1
],dog2[
4
],dog3[
5
],dog4[
2
],dog5[
3
],
排序后:
dog1[
1
],dog4[
2
],dog5[
3
],dog2[
4
],dog3[
5
],
地方
List list
=
new
ArrayList() ;
list.add(
"
abcd
"
) ;
list.add(
"
abdc
"
) ;
list.add(
"
aadf
"
) ;
list.add(
"
aabf
"
) ;
/*
将list转为数组
*/
String[] strs
=
new
String[list.size()] ;
list.toArray(strs) ;
/*
排序,只排2<=索引<4之间的数据
*/
Arrays.sort(strs,
2
,
4
) ;
for
(String str : strs){
System.out.println(str) ;
}
分享到:
相关推荐
在 Java 中,排序数组是非常常见的操作之一,而 Java 提供了多种方式来实现数组的排序,其中一种常用的方法是使用 Arrays.sort() 方法。今天,我们将详细介绍如何使用 Arrays.sort() 方法来实现数组的升序和降序排序...
`ArrayList`的`sort()`方法最终会调用`Arrays.sort()`。 `Arrays.sort()`的实现相当复杂,它采用了混合排序算法——TimSort。TimSort是一种稳定的排序算法,它的设计灵感来源于归并排序和插入排序,尤其适合于已经...
"深入理解Java中Arrays.sort()的用法" 在Java中,Arrays.sort()是一个非常重要的方法,它可以对数组进行排序。该方法是Arrays类的静态方法,在需要对数组进行排序时,非常的好用。但是sort()的参数有好几种,基本上...
在本文中,我们将详细介绍Arrays.sort()的使用方法,包括简单示例、策略模式和“super”的使用等相关内容。 1. 简单示例 Arrays.sort()的使用非常简单明了。下面的例子中,我们定义了一个比较Dog大小的Comparator...
- `Arrays.sort()`方法用于对数组进行排序,可以对整个数组或数组的部分区间进行排序。例如,`Arrays.sort(array1, 2, 7)`将数组`array1`的第2个到第6个元素进行升序排序。而`Arrays.sort(array1)`则对整个数组进行...
在Java 5.0之前,我们通常使用`Arrays.sort()`方法来对数组进行排序,但该方法的功能相对有限。Java 5.0中,`java.util.Arrays`类和`java.util.Collections`类都得到了升级,提供了更强大的排序功能。 一、Java 5.0...
举例说明,以下代码展示了如何使用Arrays类的一些主要方法: ```java import java.util.Arrays; public class Main { public static void main(String[] args) { int[] array = {5, 3, 2, 4, 1}; // 输出数组 ...
### 方法一:使用`Arrays.sort()`方法 在Java中,`java.util.Arrays`类提供了`sort()`方法来对数组进行排序。当对字符串数组进行排序时,`sort()`方法默认使用字典顺序进行排序,即根据ASCII值的大小进行比较。然而...
- **通过复制部分元素**:使用`Array.repeat`方法可以重复数组中的某一部分。 - **组合数组**:使用`ee.array.cat`或`array.mask`等函数可以合并两个或多个数组。 - **重组数组**:`array.sort`、`array.transpose`...
在给定的代码示例中,我们首先定义了一个字符串数组`arrayToSort`,然后使用`Arrays.sort()`方法对其进行排序。 ##### 1. 定义字符串数组 ```java String[] arrayToSort = new String[]{"Oscar", "Charlie", "Ryan...
1. `Arrays.sort(int[])` 和 `Arrays.sort(int[], int, int)` 用于对整型数组进行排序,第二个方法允许指定排序的范围。 2. `Arrays.sort(T[], int, int, Comparator)` 和 `Arrays.sort(T[], Comparator)` 适用于...
在 Java 14 之前,Arrays.sort(int[]) 使用双枢轴快速排序,最坏情况复杂度为 O(N^2)。从 Java 14 开始,Arrays.sort(int[]) 使用introsort 算法,时间复杂度为 O(N log N)。 对数组元素进行降序排序可以通过使用 ...
对于数组,我们可以使用`Arrays.sort()`方法;对于集合,我们可以使用`Collections.sort()`方法。这两个方法都可以对基本类型和对象类型的数组或集合进行排序,但默认情况下,它们依赖于元素的自然顺序,即元素类型...
Java中的`sort`排序算法是Java集合框架的重要组成部分,主要用于对List接口的实现类进行排序。这个算法在Java中主要体现在`...在实际编程中,了解并掌握`sort`的原理和用法,对于提升程序性能和解决问题有着重要作用。
`Arrays.sort()`方法可以用来对数组进行排序。该方法支持各种基本数据类型的排序以及对象数组的排序。对于对象数组排序,可以通过提供一个比较器(Comparator)来指定排序规则。 **示例代码**: ```java import ...
在Java编程语言中,`java.util.Arrays`类是一个非常实用的工具类,它提供了一系列静态方法,用于操作各种类型的数组,包括整型、浮点型、字符型等。这个类使得处理数组变得更加简单和高效。下面我们将详细探讨`...
Java中的排序主要涉及到`Arrays.sort()`和`Collections.sort()`两个方法。`Arrays.sort()`用于对基本类型数组和对象数组进行排序,而`Collections.sort()`则适用于列表(List)类型的排序。 1. **快速排序**:这是`...
总之,Java `Arrays.sort()`方法使用快速排序和Timsort是因为它们各自在处理原始类型和对象类型数组时有其优势。快速排序对原始类型效率高,而Timsort对对象类型提供稳定性和高效处理部分有序数据的能力。这种策略...
在上面的代码中,我们首先创建了一个 Integer 类型的 List,然后使用 Collections.sort 方法对其进行排序。排序后的结果是默认的正序排序。 自定义类的排序 在实际应用中,我们经常需要对自定义类进行排序。...
那么使用Arrays.sort(intArray)将会将数组排序为{1, 2, 3, 5, 8}。 4. Array.copyOf(数组名, 给定复制新数组的长度) copyOf() 方法可以将数组复制到一个新的数组中。例如,如果我们有一个int类型的数组intArray = ...