java 中sort 应用整理
来源:互联网 发布:企业版淘宝开店流程 编辑:程序博客网 时间:2024/06/05 05:18
1.java.util.Collections.sort(List list)与Comparable,Comparator 接口
2.java.util.Arrays.sort(T[])与Comparable,Comparator 接口
3.JFace中 TableView ,TreeView, ListView的排序,实现ViewerSorter
两者的实现类似,不同的是针对的对象不一样。Collections.sort()针对的是List,Arrays.sort()针对的是数组。如果List中或者数组中存的都是基本数据类型(byte、short、int、long、float、double、char、boolean) 和 String,那么我们直接使用即可。如果其中存的数据是对象,那么有两种方法,一是每个对象实现Comparable接口,二是使用Collections.sort(List list,Comparator c)或者Arrays.sort(T[],Comparator c),临时实现一个Comparator 来实现排序。下面以Arrays.sort为例,进行实现。
1.通过临时Comparator 实现排序
public class Node {
private String name;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
public static void main(String[] args) {
Node node1 = new Node();
node1.setName("liuhongsen");
Node node2 = new Node();
node2.setName("longhaimei");
Node node3 = new Node();
node3.setName("liuhonglin");
Node[] node = {node1,node2,node3};
Arrays.sort(node, new Comparator(){
public int compare(Object o1, Object o2) {
return ((Node)o1).getName().compareTo(((Node)o2).getName());
}
});
for(int i= 0; i < node.length; i++){
System.out.println(node[i].getName());
}
}
}
2.通过数组中对象实现Comparable接口实现排序
public class Node implements Comparable{
private String name;
public void setName(String name){
this.name = name;
}
public void setType(String type){
this.type = type;
}
public String getName(){
return name;
}
public int compareTo(Object o) {
return getName().compareTo(((Node)o).getName());
}
}
public class SortTest {
public static void main(String[] args) {
Node node1 = new Node();
node1.setName("liuhongsen");
Node node2 = new Node();
node2.setName("longhaimei");
Node node3 = new Node();
node3.setName("liuhonglin");
Node[] node = {node1,node2,node3};
Arrays.sort(node);
for(int i= 0; i < node.length; i++){
System.out.println(node[i].getName());
}
}
}
3.TableView ,TreeView, ListView的排序
以TableView 为例。
TableViewer tableViewer = new TableViewer(detailGroup, SWT.BORDER | SWT.V_SCROLL| SWT.H_SCROLL | SWT.FULL_SELECTION);
GridData gd = new GridData(GridData.FILL_BOTH);
tableViewer.getControl().setLayoutData(gd);
tableViewer.setContentProvider(new TableViewerContentProvider());
tableViewer.setLabelProvider(new TableViewerLabelProvider());
Table table = tableViewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
tableViewer.setSorter(new FolderSorter());
public class FolderSorter extends ViewerSorter {
public int compare(Viewer viewer, Object o1, Object o2) {
if (o1 instanceof INodeEntity && o2 instanceof INodeEntity){
String labelName1 = ((INodeEntity)o1).getName();
String labelName2 = ((INodeEntity)o2).getName();
int res = labelName1.toLowerCase().compareTo(
labelName2.toLowerCase());
return res;
}
return 0;
}
}
- java 中sort 应用整理
- java中数组排序arrays.sort方法应用
- JCL中SORT的应用
- 新应用的知识整理-java代码中完成布局
- java中sort的使用方法
- java中Collections.sort排序
- java中Collections.sort排序
- Java中Arrays.sort()实现
- Java中应用Collections工具类的Sort()方法对List进行排序
- 接上一篇,sort中comp的应用
- golang中sort包实现与应用
- python3中 sort sorted 函数应用
- 整理java代码常见应用
- 整理java代码常见应用
- java中collections中sort方法
- JAVA中IO整理
- java中IO整理
- java中IO整理
- 字符串操作函数
- 在.NET4.0下运行.NET2.0程序集
- 简单的备份和还原
- meego上播放视频的方法总结
- 排序系列之(3)快速排序及C语言实现
- java 中sort 应用整理
- java Web Service
- 批量更改BOM的函数
- jpeg标记表
- 使用NEC 78K0系列单片机扩展功能
- AutoExcuteJob Framework(一)如何构建,部署 Windows Service
- 调整GridView编辑时控件大小
- Tar 命令
- Qt Mobility中Contacts框架介绍