「javashort排序」java实现排序

博主:adminadmin 2023-03-18 03:42:12 328

本篇文章给大家谈谈javashort排序,以及java实现排序对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

有朋友能详细介绍一下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实现排序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。