「javashort排序」java实现排序
本篇文章给大家谈谈javashort排序,以及java实现排序对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、有朋友能详细介绍一下java中sort的用法吗
- 2、Java中有一个排序操作的方法:java.util.Arrays.sort.()请问括号应该写什么
- 3、Java中 byte char short大小问题
- 4、JAVA中八种基本数据类型从大到小的顺序是什么?
- 5、java 数字short这个方法默认的用的是什么排序方法?冒泡还是希尔或者其他的?
有朋友能详细介绍一下java中sort的用法吗
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 来实现排序。
最后是一个以TableView 为例。
TableViewer tableViewer = new TableViewer(detailGroup, SWT.BORDER | SWT.V_SCROLL
| SWT.H_SCROLL | SWT.FULL_SELECTION);
tableViewer.setSorter(new FolderSorter());
public class FolderSorter extends ViewerSorter {
。。。。。。
}
Java中有一个排序操作的方法:java.util.Arrays.sort.()请问括号应该写什么
java.util.Arrays.sort.(byte char short int float long double)。Arrays类中public方法都是sort,但里面实际做工作的是sort2和sort1,最实际的工作是sort1。
几个核心的sort1方法声明:
private static void sort1(long x[], int off, int len);
private static void sort1(int x[], int off, int len);
private static void sort1(short x[], int off, int len);
private static void sort1(char x[], int off, int len);
private static void sort1(byte x[], int off, int len);
private static void sort1(double x[], int off, int len);
private static void sort1(float x[], int off, int len)。
Java中 byte char short大小问题
byte 1字节 16位
char 2 字节
short 2 字节
int 4 字节
float 4 字节
long 8 字节
double 8 字节
JAVA中八种基本数据类型从大到小的顺序是什么?
byte 1字节
char 2字节
short 2字节
int 4字节
float 四字节
long 八字节
double 八字节
boolean 没有
java 数字short这个方法默认的用的是什么排序方法?冒泡还是希尔或者其他的?
这是api中数组排序的源码
private static void sort1(int x[], int off, int len) {
// Insertion sort on smallest arrays
if (len 7) { //冒泡
for (int i=off; ilen+off; i++)
for (int j=i; joff x[j-1]x[j]; j--)
swap(x, j, j-1);
return;
}
// Choose a partition element, v
int m = off + (len 1); // Small arrays, middle element
if (len 7) {
int l = off;
int n = off + len - 1;
if (len 40) { // Big arrays, pseudomedian of 9
int s = len/8;
l = med3(x, l, l+s, l+2*s);
m = med3(x, m-s, m, m+s);
n = med3(x, n-2*s, n-s, n);
}
m = med3(x, l, m, n); // Mid-size, med of 3
}
int v = x[m];
// Establish Invariant: v* (v)* (v)* v*
int a = off, b = a, c = off + len - 1, d = c;
while(true) {
while (b = c x[b] = v) {
if (x[b] == v)
swap(x, a++, b);
b++;
}
while (c = b x[c] = v) {
if (x[c] == v)
swap(x, c, d--);
c--;
}
if (b c)
break;
swap(x, b++, c--);
}
// Swap partition elements back to middle
int s, n = off + len;
s = Math.min(a-off, b-a ); vecswap(x, off, b-s, s);
s = Math.min(d-c, n-d-1); vecswap(x, b, n-s, s);
// Recursively sort non-partition-elements
if ((s = b-a) 1)
sort1(x, off, s);
if ((s = d-c) 1)
sort1(x, n-s, s);
}
/**
* Swaps x[a] with x[b].
*/
private static void swap(int x[], int a, int b) {
int t = x[a];
x[a] = x[b];
x[b] = t;
}
private static int med3(long x[], int a, int b, int c) {
return (x[a] x[b] ?
(x[b] x[c] ? b : x[a] x[c] ? c : a) :
(x[b] x[c] ? b : x[a] x[c] ? c : a));
}
/**
* Sorts the specified sub-array of integers into ascending order.
*/
关于javashort排序和java实现排序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。