① java 实现ArrayList的sort
java中可以使用Sort方法,可以对集合中的元素进行排序。Sort有三种重巧唤纳载方法,声孝没明代码如下所示。
public void Sort();
//使用集合元素的比较方式进行排序
public void Sort(IComparer comparer);
//使用自定义比较器进行排序
public void Sort(int index, int count, IComparer comparer)
//使用自定义比较器进行指定范围的排序
注意:为使用Sort方法进行排序,集合中的所有元素必须实现IComparable接口,否则,将抛出异常。
这里介绍使用第一种方法进行简单的排序实例
using System;
using System.Collections;
class Program{
static void Main(string[] args)
{
ArrayList al = new ArrayList();
al.AddRange(new string[8] { "Array1", "Array2", "Array3", "Array5", "Array4", "链猜Array8", "Array7", "Array6" });
al.Sort();
foreach (string s in al)
{
Console.WriteLine(s);
}
Console.ReadLine();
}
}
② java的sort方法为什么默认使用归并排序
因为你看的是java 6。
在Java 6中Arrays.sort()和镇兄Collections.sort()使用的桥旅卜是MergeSort,敏穗而在Java 7中,内部实现换成了 TimSort
PS: TimSort不仅内置在各种JDK 7的版本,也存在于Android SDK中(尽管其并没有使用JDK 7)。
③ JAVA中如何使用SORT从大到小排.
根据你这要求,只有一个陪乎明顷搭办法,但是有点约束:
import java.util.Arrays;
import java.util.Collections;
public class Test {
public static void main(String[] args) {
//注意,只能用对象类型,不可以使用简单类型 如int[] num则报错
Integer[] num = {5,8,3,9,1};
//如果是num是List或 Set,芦告则用Collections.sort(num,Collections.reverseOrder());
Arrays.sort(num,Collections.reverseOrder());
for(int i=0;i<num.length;i++){
System.out.println(num[i]);
}
}
}
④ java 数列sort方法
Arrays.sort(odd);是对odd直接进行排序,不需要返回值,排序结果还是在原来的数组里
应该是你的输出逻辑不对
index=0下面的语句都不执行
for(int n=0;n<index;n++)
{System.out.print(odd[n]+" ");}
⑤ Java 关于排列 (sort)
程序整体错误较多,但你的思路很清晰。在以后要多注意数组边界的处理和排序的逻辑性思维的锻炼
出现的错误已更正,需要注意的地方代码中已经指出。希望对你有帮助
————————誉斗汪——————程序代码——————————————
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class population {
static Scanner console=new Scanner(System.in);
public static void main(String[]args)
{ int[] x={1,25,7,6,8}; //x.length=5;
int i,j,f;
int []v=new int[8];
for (j=0;j<5;j++)/*由庆仔于x有5个元素,j=1开始循环的话那么j<6,但你
后边要给数组赋值所以只有改j的初始值了,
后边就将j+1就不会出现“x0”
*/
{System.out.println("Enter the number for x"+ (j +1));
for (i=0;i<8;i++)
v[i]=console.nextInt();
x[j]=(v[0]+v[1])-(v[2]+v[3])+(v[4]+v[5])+(v[6]+v[7]);
}
System.out.println("排序前:");
for (j=0;j<5;j++){
System.out.println("x"+j+"=" + x[j]);
}
for (f =0; f<x.length;f++)
{
for (j=0;j<(x.length-1);j++)/*循环每一个元素所以要从j=0开始,
在这个数组里 第4此循环比较x[3]和 x[4], 第5次循环
只取的最后一个元素 这销稿也是冒泡排序
要注意的地方,最后一次不要比较。*/
{
if (x[j]<x[j+1])
{ //将x[j],[j+1]交换位置,
int tmp=0;
tmp=x[j+1];
x[j+1]=x[j];
x[j]=tmp;
}
}
}
System.out.println("排序后:");
for (j=0;j<5;j++){
System.out.println("x"+j+"=" + x[j]);
}
}
}
________________________________程序执行结果————————————
Enter the number for x1
1 2 3 4 5 6 7 8
Enter the number for x2
2 5 8 3 6 9 7 8
Enter the number for x3
1 4 7 2 5 8 3 6
Enter the number for x4
4 5 6 7 8 92 5
4
Enter the number for x5
4 5 6 8 5 2 3 6
排序前:
x0=22
x1=26
x2=18
x3=105
x4=11
排序后:
x0=105
x1=26
x2=22
x3=18
x4=11
⑥ java 中对class的sort
1、问题出在将一个数组对象强制转化为state对象宽穗弊,即: state y = (state) o
经过这一强转化使引用变量y指向堆中的一个数组对象,在 if(this.a == y.a)
中的y.a是不成立的,因为y指向的数组对象中没有a这族旦个成员变量所以慎族要抛出空指针异常
2、温馨提示:引用类型的变量的强制转化只存在于继承关系(父类与子类)中或实现关系(实现类与接口)中,其它情况的强制转化将导致类型不兼容的运行时异常。
⑦ 有朋友能详细介绍一下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数组sort()方法降序怎么排
java数组sort()方法降序方式:
用Arrays类蚂仔sort()对数组元素进行降序排列
import java.util.Arrays;
class SortDemo
{
public static void main(String[] args)
{
int[] vec={0,15,-14,45,20,70};
Arrays.sort(vec);
System.out.println("/n");
System.out.println("降铅宽序排列:");
for (int i=vec.length-1;i>=0 ;i-- )
{ 槐物亮
System.out.print(vec[i]+" ");
}
}
}
⑨ java中的的sort和comparable的区别与联系
类T实现comparable
这个接激伏口表示拥有
int
compareTo(T
t2)
这个方法。这就表示T的对象是可以两两比较大小的。
sort(Collection
c)
这个排序方法,正是利用T中的compareTo方法对T的对象集合中的对象两两进行比较来排序的。这就是sort与comparable的联系。
至于区别,一个功能羡仿是排序,一个功能是两两比较,功能是不相同的。但是兄铅纤能够两两比较是能排序的前提,试想一下如果两个对象不能比大小,怎么排序呢?