今天好好地巩固了一下基础,仔细研究了一下,其实Java工具类真的非常丰富,它已经提供了各种排序功能的实现:
1.数组排序
java.util.Arrays类提供了各种对象的排序:char[],byte[],long[],int[]和Object[],注Arrays.sort方法排序返回的结果是升序Ascending的排列顺序。你可以定制排序顺序。这个排序和TreeSet的红黑树排序方式不同,Set不允许有重复数据存在,因此,当有重复数据时,可以使用这个工具类进行排序。Arrays提供的排序算法是归并排序算法(当元素数量小于=7时采用的是插入排序),空间复杂度O(n)。
/**
*
*<p>Test</p>
*<p>Description:</P>
*<p>Company:</p>
*<p>Department:CAS</p>
*@Author: Tommy Zhou
*@Since: 1.0
*@Version:Date:2011-4-26
*
**/
public class ArraySortTest {
public static void main(String[] args) {
String[] strs = new String[]{"3","2","5","6","2"};
Arrays.sort(strs, String.CASE_INSENSITIVE_ORDER);
}
}
另外你还可以指定排序的方式,例如你要修改排序的顺序,由默认的升序改成降序的方式:
package sort;
import java.util.Arrays;
import java.util.Comparator;
/**
*
*<p>Test</p>
*<p>Description:</P>
*<p>Company:</p>
*<p>Department:CAS</p>
*@Author: Tommy Zhou
*@Since: 1.0
*@Version:Date:2011-4-26
*
**/
public class ArraySortTest {
public static void main(String[] args) {
String[] strs = new String[]{"3","2","5","6","2"};
Comparator comparator = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int c1 = Integer.valueOf(o1);
int c2 = Integer.valueOf(o2);
return c2-c1;
}
};
Arrays.sort(strs,comparator);
for (int i = 0; i < strs.length; i++) {
System.out.println(strs[i]);
}
}
}
另外你也可以下列方法指定排列的顺序是降序还是升序:
String[] strs1 = new String[]{"3","2","5","6","2"};
Arrays.sort(strs1,Collections.reverseOrder());
for (int i = 0; i < strs.length; i++) {
System.out.println(strs[i]);
}
2.TreeSet对非重复元素进行排序
TreeSet的实现依赖于TreeMap,使用了红黑树进行了排序:
package sort;
import java.util.Iterator;
import java.util.TreeSet;
/**
*
*<p>Test</p>
*<p>Description:</P>
*<p>Company:</p>
*<p>Department:CAS</p>
*@Author: Tommy Zhou
*@Since: 1.0
*@Version:Date:2011-4-26
*
**/
public class TreeSetSortTest {
public static void main(String[] args) {
TreeSet<String> treeSet = new TreeSet<String>();
String[] strs = new String[]{"3","5","6","2"};
for (int i = 0; i < strs.length; i++) {
treeSet.add(strs[i]);
}
//Decending sorted iterator
Iterator iterator = treeSet.descendingIterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
//Ascending sorted iterator
Iterator iterator1 = treeSet.iterator();
while(iterator1.hasNext()){
System.out.println(iterator1.next());
}
}
}
3.利用集合工具类进行排序
package sort;
import java.util.Arrays;
import java.util.Collections;
/**
*
*<p>Test</p>
*<p>Description:</P>
*<p>Company:</p>
*<p>Department:CAS</p>
*@Author: Tommy Zhou
*@Since: 1.0
*@Version:Date:2011-4-26
*
**/
public class CollectionsSortTest {
public static void main(String[] args) {
//Ascending sorted iterator
String[] strs = new String[]{"3","2","5","6","2"};
Collections.sort(Arrays.asList(strs));
for (int i = 0; i < strs.length; i++) {
System.out.println(strs[i]);
}
//Decending sorted iterator
String[] strs1 = new String[]{"3","2","5","6","2"};
Collections.sort(Arrays.asList(strs1),Collections.reverseOrder());
for (int i = 0; i < strs1.length; i++) {
System.out.println(strs1[i]);
}
}
}
附录:
关于红黑树的JDK实现细节和原理,请参考:
http://www.ibm.com/developerworks/cn/java/j-lo-tree/index.html?ca=drs-
分享到:
相关推荐
java List排序工具类 使用示例: new OrderUtils().order(list, "name", OrderUtils.DESC); 相关实例代码: public static void main(String[] args) { List<Person> list = getData(); // 获取无序数据 new ...
Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...
使用泛型的对象排序工具类(使用算法:快速排序),适合初学者学习快速排序的基本原理和实现。
以上是Java中28个常用工具类的简要介绍,每个类都有丰富的功能,掌握并灵活运用它们,将极大提升你的Java编程能力。在实际开发中,根据具体需求选择合适的工具类,可以编写出高效、简洁的代码。
Java工具类是编程中不可或缺的一部分,它们提供了许多实用的功能,帮助开发者提高代码的效率和可维护性。在Java中,工具类通常包含了各种通用的方法,适用于多种场景,减少了重复编码的工作。以下是一些主要的Java...
总之,Java工具类是提高开发效率的关键,它们封装了常见的操作,减少了代码重复,提高了代码可读性和维护性。"一些java常用的工具类"可能涵盖了上述的多种功能,为开发者提供了方便快捷的编程体验。通过理解和利用...
Java将2个List集合合并到一个List里面并排序工具类 1、Java编程资源,定义了一个名为`ListMerger`的工具类,主要包含一个名为`mergeAndSortLists`的静态方法。此方法用于将两个已经根据时间顺序排列的List合并成一...
Java工具类是程序员在开发过程中经常使用的类库,它们提供了各种通用的功能,使得代码更加简洁、高效。在Java中,工具类通常是静态方法的集合,用于处理常见的编程任务,如字符串操作、数学计算、日期时间处理等。...
- 数组操作工具类可能提供了数组的复制、排序、查找、过滤、转换等功能。例如,`ArrayUtils`类可以简化数组的操作,如合并、分割、填充默认值等。 - 对于对象数组,可能还包括深度拷贝、比较、排序等高级操作。 4...
Java工具类是Java编程语言中一个非常重要的组成部分,它们提供了许多实用的方法,帮助开发者更高效地处理各种编程任务。在Java中,工具类通常被设计为静态方法集合,不依赖于实例化对象,可以直接调用类中的方法进行...
本压缩包提供了27个常用的Java工具类,涵盖了编码解码、安全加密、日期时间处理、文件操作等多个领域。以下是这些工具类的详细介绍: 1. **Base64Util**:这是一个用于Base64编码和解码的工具类。Base64是一种广泛...
总的来说,Java工具类是对基础类型、对象和数据处理的一种抽象和优化,提高了开发效率和代码质量。理解并熟练使用这些工具类,对于提升Java编程能力至关重要。通过不断学习和实践,我们可以更好地利用这些工具类,写...
Java工具类是Java编程中非常重要的组成部分,它们提供了一系列预定义的方法,可以帮助开发者高效地处理各种常见任务,而无需从头实现。在Java中,最知名的工具类库是`java.util`包,它包含了大量方便实用的类。下面...
总结一下,Java实现拖拽列表项的排序功能主要包括以下步骤: 1. 启用UI组件的拖放功能,如设置`AllowDrop`、`CanReorderItems`和`IsSwipeEnabled`属性。 2. 监听并处理拖放事件,更新数据模型以反映拖放操作。 3. ...
下面,我们将详细探讨一些可能包含在其中的关键Java工具类知识点。 1. **集合框架**:Java集合框架是Java中处理对象集合的核心API,包括List、Set、Map等接口以及ArrayList、HashSet、HashMap等实现类。高效的数据...
Java常用工具类是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、...
Java工具类代码集合是Java开发中非常重要的组成部分,它们提供了许多通用的功能,使得开发者能够更加高效地编写代码,避免重复劳动。在这个集合中,我们通常会看到各种实用的方法,涵盖字符串处理、数组操作、日期...
"Java常用工具类大全,工作5年精心整理.zip"这个压缩包文件很可能包含了一位有经验的Java开发者在五年工作中积累的各种实用工具类,这些工具类能够极大地提高开发效率,简化代码编写。以下是对可能包含的知识点进行...
Java工具类库是Java开发中的重要组成部分,它们提供了一系列预定义的函数,帮助开发者更高效地处理各种常见任务。在Java中,工具类通常被组织在各种不同的包下,如`java.util`、`java.lang`、`java.io`等。这些工具...
java开发中常用的工具类 比如 1:hibernate的配置 工具类复写 2:字符串加密 MD5加密 3:javabean到map的自动映射封装 4:javabean java对象到xml的自动封装 5:各种日期格式的处理 6:json的自动封装处理 7:...