import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang.time.DateUtils;
public class ArraySortTest {
private static DateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
public static void main(String[] args) {
//时间
Date date = new Date(),date1 = new Date(),date2 = new Date();
date = DateUtils.addDays(date, 1);
date1 = DateUtils.addDays(date1, 2);
date2 = DateUtils.addDays(date2, 3);
List<Date> listDate = new ArrayList<Date>();
listDate.add(date);
listDate.add(date1);
listDate.add(date2);
List<String> listStr = new ArrayList<String>();
for (Date date3 : listDate){
listStr.add(dateFormat.format(date3));
}
System.out.println(listStr.toString());
Collections.sort(listDate, new Comparator<Date>(){
@Override
public int compare(Date o1,Date o2){
int value = o1.after(o2) ? -1 : 1;
System.out.println(" date: " + value);
return value;
}
});
List<String> listStr1 = new ArrayList<String>();
for (Date date3 : listDate){
listStr1.add(dateFormat.format(date3));
}
System.out.println(listStr1.toString());
//数字
int a = 1,b=2,c=3;
List<Integer> listInt = new ArrayList<Integer>();
listInt.add(a);
listInt.add(b);
listInt.add(c);
Collections.sort(listInt, new Comparator<Integer>(){
@Override
public int compare(Integer o1, Integer o2) {
int value = o1>o2 ? 1 : -1;
System.out.println(" int: " + value);
return value;
}
});
System.out.println(listInt.toString());
}
}
结果:
[2012年03月27日, 2012年03月28日, 2012年03月29日]
date: 1
date: 1
date: 1
[2012年03月29日, 2012年03月28日, 2012年03月27日]
int: -1
int: -1
[1, 2, 3]
在定制排序的时候,返回 -1 是顺序排序 1 是倒序 记下,有个时候容易搞混。
分享到:
相关推荐
1.数组: 数组的复制:System.arraycopy(src, srcPos, dest, destPos, length); Arrays.copyOf(original... Arrays.sort(arr);//对arr进行升序排列 2.方法(函数、过程): 方法的定义; 方法的调用; return;
4. `sort(int[])`: 对整型数组进行升序排序。 5. `binarySearch(int[], key)`: 在已排序的数组中进行二分查找,返回目标值的索引,未找到则返回负数。 6. `copyOfRange(int[], int, int)`: 从源数组中复制指定索引...
在比较列表中的元素大小时,可以使用`Collections.sort()`方法对列表进行排序,也可以通过`Comparator`接口自定义比较逻辑。 **示例**: ```java List<Integer> list = Arrays.asList(3, 1, 4, 1, 5); Collections...
这个文件可能讲解了如何使用内置的`Arrays.sort()`方法,或者是自定义排序算法,如快速排序、归并排序等。此外,也可能探讨了如何处理自定义对象类型的数组排序,这通常涉及`Comparable`或`Comparator`接口的使用。 ...
` 使用 `Arrays.sort()` 方法对数组 `arr` 进行升序排序。该方法采用快速排序算法实现,时间复杂度平均为O(n log n)。 - **数组转换为字符串表示形式**:`System.out.println(Arrays.toString(arr));` 将排序后的...
1. **快速排序**:Java中的`Arrays.sort()` 方法就是基于快速排序实现的,这是一种高效的排序算法,平均时间复杂度为O(n log n)。例如: ```java int[] a = {5, 4, 2, 4, 9, 1}; Arrays.sort(a); // 对数组进行排序 ...
其中,Arrays.sort 方法可以对数组进行排序,Arrays.equals 方法可以比较两个数组是否相等。 七、foreach 循环 foreach 循环是一种特殊的循环语句,用于遍历数组和集合。foreach 循环的特点是简单、高效,不需要...
- **数组排序**:使用`Arrays.sort()`方法。例如,升序排列: ```java int scores[] = {1, 2, 3, 89, 4}; Arrays.sort(scores); for (int i : scores) { System.out.println(i); } ``` 若要降序排列,可...
Collections.sort(numbers, (a, b) -> a - b); // 升序排序 ``` Lambda表达式的关键在于它能够使代码更简洁,同时保持清晰的逻辑。在上述例子中,我们传递了一个比较函数 `(a, b) -> a - b`,而无需定义一个完整的...
Arrays.sort(array); // 升序排序 ``` 在Java的经典小题中,数组常常被用来解决各种问题,例如查找、排序、统计等。例如,你可以实现一个函数来查找数组中的最大值: ```java public int findMax(int[] arr) { ...
`Arrays.parallelSort()`方法提供了并行排序,可以利用多核CPU提高排序性能。 10. **接口的私有方法和静态方法**: Java 8允许在接口中定义私有方法和静态方法,这增强了接口的灵活性,使得接口可以实现一些内部...
- Arrays类提供了排序方法,如Arrays.sort()。 8. **数据类型的深入理解**: - 基本数据类型如int、double、char等直接存储值,而引用数据类型如数组、类实例等存储的是对象的引用,指向实际数据所在的内存位置。 ...
* 数组的排序:Arrays.sort(arr); * 数组的搜索:Arrays.binarySearch(arr, target); Java 数组的优点包括: * 高效的存储和访问方式 * 方便的数组操作方式 * 广泛的应用场景 Java 数组的缺点包括: * 固定长度...
Arrays.sort(a); ``` 排序后的数组元素输出将按照升序排列。 ### 4. 多态性 多态性是面向对象编程的一个核心特性,允许子类对象被当作父类对象使用。但是,如果一个引用变量声明为父类类型,而实际引用的是子类...
3. 排序算法:文档提到了选择排序、冒泡排序以及使用Arrays.sort()方法。选择排序每次选取最小值,需要外层循环控制比较次数,内层循环控制比较元素个数;冒泡排序只比较相邻元素;Arrays.sort()使用二分查找法。 4...
- 数组排序:使用`Arrays.sort()`方法对数组进行排序。 - 搜索元素:使用`indexOf()`方法查找特定元素在数组中的位置,如果没有找到该元素,则返回-1。 - 数组转换为字符串:可以使用`Arrays.toString()`方法将...
在Java中,`Arrays.sort()`方法提供了快速排序或归并排序的实现。 在面向对象编程中,我们可以封装数据结构,如创建一个名为`MyArray`的类来管理数组。此类可以包含插入、查找、删除和更新数据的方法。例如: ```...
对于排序,Java提供`Arrays.sort()`方法,如对整型数组排序: ```java Arrays.sort(myArray); ``` 查找元素有多种方法,如线性搜索(效率较低)和二分搜索(适用于已排序数组,效率较高)。线性搜索示例如下: ``...