×

arraylist排序方法 排序 java

arraylist排序方法(java arraylist 集合排序问题)

admin admin 发表于2022-09-04 10:31:49 浏览155 评论0

抢沙发发表评论

本文目录

java arraylist 集合排序问题


你可以使用Collections 提供的sort方法对ArrayList进行排序,sort方法提供了一个Comparator接口类型的参数,这个参数中可以自定义排序规则
你可以自定义一个类实现Comparator接口,在里面编写你需要的排序规则,然后通过以下方式排序ArrayList
Collections.sort(arraylist,自定义排序规则对象);
sort
public static 《T》 void sort(List《T》 list,
Comparator《? super T》 c)
根据指定比较器产生的顺序对指定列表进行排序。此列表内的所有元素都必须可使用指定比较器相互比较(也就是说,对于列表中的任意
e1 和 e2 元素,c.compare(e1, e2) 不得抛出
ClassCastException)。
此排序被保证是稳定的:不会因调用 sort 而对相等的元素进行重新排序。
排序算法是一个经过修改的合并排序算法(其中,如果低子列表中的最高元素小于高子列表中的最低元素,则忽略合并)。此算法提供可保证的 n log(n) 性能。
指定列表必须是可修改的,但不必是可大小调整的。此实现将指定列表转储到一个数组中,并对数组进行排序,在重置数组中相应位置每个元素的列表上进行迭代。这避免了由于试图原地对链接列表进行排序而产生的
n2 log(n) 性能。
参数:
list - 要排序的列表。
c - 确定列表顺序的比较器。null 值指示应该使用元素的自然顺序。
抛出:
ClassCastException -
如果列表中包含不可使用指定比较器相互比较 的元素。
UnsupportedOperationException
- 如果指定列表的列表迭代器不支持 set 操作。
另请参见:
Comparator
java.util
接口 Comparator《T》
类型参数:
T - 此 Comparator 可以比较的对象类型

ArrayList排序用什么排序方法最快


List list=new ArrayList();
list.add(a);
...
...
.
....add(z);
Collections.sort(list);
只用最后一句话就可以了.

Arraylist里面怎么对循环取出的某一列数据进行排序


对ArrayList中的元素进行排序,主要考查的是对util包中的Comparator接口和Collections类的使用。
实现Comparator接口必须实现compare方法,自己可以去看API帮助文档。
创建一个Comparator实例后,用Collections.sort(List,《E》)对List中的元素进行排序。
下面是实现代码:
以下文件必须引入util包:
package com.test;
import java.util.*;
Emp.java文件如下:
Java代码
class Emp{
private String empNo ;
private String empName ;
private float sal ;
public String getEmpNo() {
return empNo;
}
public void setEmpNo(String empNo) {
this.empNo = empNo;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public float getSal() {
return sal;
}
public void setSal(float sal) {
this.sal = sal;
}

public Emp(String empNo,String empName,float sal){
this.empNo = empNo ;
this.empName = empName ;
this.sal = sal ;
}
}
-排序

ArrayList数组里面怎么排序


ArrayList《Integer》 list = new ArrayList《Integer》 ();
Collections.sort (list);

arraylist重写,按数字排序


Student学生类实现Comparable接口,实现其中的compareTo方法,如:public int compareTo(Student student) {
return student.getAge()-this.getAge();
}之后用调用Collections.sort(arraylist),排序完毕
-java

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 { “Array1“, “Array2“, “Array3“, “Array5“, “Array4“, “Array8“, “Array7“, “Array6“ });
al.Sort();
foreach (string s in al)
{
Console.WriteLine(s);
}
Console.ReadLine();
}
}
-排序

Java中的ArrayList怎么进行冒泡排序


java中的ArrayList进行冒泡排序,主要是循环遍历取出数据,然后进行比较排序,如下代码:

package com.qiu.lin.he;
import java.util.ArrayList;
public class Ceshi {
public static void main(String args) {
ArrayList《Integer》 list = new ArrayList《Integer》();
list.add(76);
list.add(4);
list.add(786);
list.add(43);
list.add(21);
list.add(432);
list.add(10);
for (int i = 0; i 《 list.size() - 1; i++) {
for (int j = 1; j 《 list.size() - i; j++) {
Integer a;
if (list.get(j - 1).compareTo(list.get(j)) 》 0) { // 比较两个整数的大小
a = list.get(j - 1);
list.set((j - 1), list.get(j));
list.set(j, a);//交换数据
}
}
}
for (Integer s : list) {
System.out.println(s.intValue());//输出arraylist的数据
}
}
}

运行结果如下:-java


java如何对Arraylist数组进行排序(用comparable)


看代码:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
public class Demo {
public static void main(String args) throws Exception {
Pair pairs = {
new Pair(0, 1),
new Pair(2, 9),
new Pair(7, 0),
new Pair(8, 8),
new Pair(8, 6),
new Pair(9, 2),
new Pair(1, 5),
new Pair(8, 2),
new Pair(9, 15),
new Pair(9, 5)
};
ArrayList《Pair》 pairList = new ArrayList《》(Arrays.asList(pairs));
System.out.println(“排序前:“);
System.out.println(Arrays.toString(pairs));
Arrays.sort(pairs); // 对数组排序
System.out.println(“排序后:“);
System.out.println(Arrays.toString(pairs));
System.out.println(“排序前:“);
System.out.println(pairList);
Collections.sort(pairList); // 对 ArrayList 排序
System.out.println(“排序后:“);
System.out.println(pairList);
}
}
// 继承 Comparable 接口排序该类是 “可排序的”
// 《》 里面的是排序时与当前实例进行比较的实例的类型
// 一般都和当前实例是同一个类型,比如这里就是 Pair 的实例 和 Pair 的实例比较
class Pair implements Comparable《Pair》 {
public int left;
public int right;
public Pair(int left, int right) {
this.left = left;
this.right = right;
}
@Override
public String toString() {
return “[“ + left + “, “ + right + “]“;
}
// 排序规则,先按 left 排序,再按 right 排序
@Override
public int compareTo(Pair that) {
if (this.left 》 that.left) {
return 1;
} else if (this.left 《 that.left) {
return -1;
} else if (this.right 》 that.right) {
return 1;
} else if (this.right 《 that.right) {
return -1;
}
return 0;
}
}

 -排序

可以发现先按 left 排序,如果 left 相等,则按 right 排序


c#arraylist 怎样排序


可以使用ArrayList的Sort()方法
使用Sort方法,可以对集合中的元素进行排序。Sort有三种重载方法,声明代码如下所示。
public void Sort();
//使用集合元素的比较方式进行排序
public void Sort(IComparer comparer);
//使用自定义比较器进行排序
public void Sort(int index, int count, IComparer comparer)
//使用自定义比较器进行指定范围的排序
注意:为使用Sort方法进行排序,集合中的所有元素必须实现IComparable接口,否则,将抛出异常。
-java

如何实现对ArrayList排序 sort


使用Collections.sort()传入ArrayList,会采用默认的方式进行排序(字典序)
使用Collections.sort()传入ArrayList和自己实现Commparator接口的类的对象,实现自定义排序
使用List.sort()传入自己实现Commparator接口的类的对象,实现自定义排序
Comparator返回值在jdk1.7、jdk1.8里必须是一对相反数,如1和-1,不能是1和0.因为1.7的排序算法采用timsort,对返回值有严格要求
-排序