当前位置:首页 » 编程语言 » arraylistjava排序

arraylistjava排序

发布时间: 2022-08-26 20:53:24

java ArrayList 排序

package com.test; public class BookBean { private String no; private String name; private String date; public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNo() { return no; } public void setNo(String no) { this.no = no; } } 以上为使用的BookBean ------------------------------------------ 下面是排序使用的 比较器 package com.test; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Comparator; public class MyComparator implements Comparator<BookBean> { public int compare(BookBean book1, BookBean book2) { DateFormat df =new SimpleDateFormat("yyyyMMdd"); try { return df.parse(book1.getDate()).compareTo(df.parse(book2.getDate())); } catch (ParseException e) { return 0; } } } -------------------------------------------------------- 下面是测试: import java.util.Collections; import java.util.List; public class TestSort { public static void main(String[] args) { List<BookBean> list = new ArrayList<BookBean>(); for(int i=9;i>0;i--){ BookBean bb = new BookBean(); bb.setDate("2009030"+i); bb.setNo("0"+i); bb.setName("name"+i); System.out.println(bb.getDate()); list.add(bb); } Collections.sort(list,new MyComparator()); System.out.println("after sort:(ASC)"); for(int i=0;i<list.size();i++){ System.out.println(list.get(i).getDate()); } } }

⑵ java arraylist 按照对象的属性排序

List中的元素是对象的话,若要按该List中元素的某个属性进行排序,那么应该重写里面元素的hashCode和equals方法,然后再排序。比如该问题要重写course的hashCode和equals方法

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

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

packagecom.qiu.lin.he;

importjava.util.ArrayList;

publicclassCeshi{
publicstaticvoidmain(String[]args){
ArrayList<Integer>list=newArrayList<Integer>();
list.add(76);
list.add(4);
list.add(786);
list.add(43);
list.add(21);
list.add(432);
list.add(10);
for(inti=0;i<list.size()-1;i++){
for(intj=1;j<list.size()-i;j++){
Integera;
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(Integers:list){
System.out.println(s.intValue());//输出arraylist的数据
}
}
}

运行结果如下:

⑷ Java Arraylist 如何使用 Comparator排序

用Comparator是策略模式(strategy design pattern),就是不改变对象自身,而用一个策略对象(strategy object)来改变它的行为。
比如:你想对整数采用绝对大小来排序,Integer是不符合要求的,你不需要去修改Integer类(实际上你也不能这么做)去改变它的排序行为,只要使用一个实现了Comparator接口的对象来实现控制它的排序就行了。

示例代码如下:

//AbsComparator.java
import java.util.*;
public class AbsComparator implements Comparator {
public int compare(Object o1, Object o2) {
int v1 = Math.abs(((Integer)o1).intValue());
int v2 = Math.abs(((Integer)o2).intValue());
return v1 > v2 ? 1 : (v1 == v2 ? 0 : -1);
}
}

//Test.java
import java.util.*;
public class Test {
public static void main(String[] args) {

//产生一个20个随机整数的数组(有正有负)
Random rnd = new Random();
Integer[] integers = new Integer[20];
for(int i = 0; i < integers.length; i++)
integers[i] = new Integer(rnd.nextInt(100) * (rnd.nextBoolean() ? 1 : -1));

System.out.println("用Integer内置方法排序:");
Arrays.sort(integers);
System.out.println(Arrays.asList(integers));

System.out.println("用AbsComparator排序:");
Arrays.sort(integers, new AbsComparator());
System.out.println(Arrays.asList(integers));
}
}

⑸ 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中怎样对ArrayList集合中的指定列排序

ArrayList
就是一个可以改变大小的一维数组.当然
你可以往ArrayList里放ArrayList或者其它的容器什么的那就用标准的排序方法就行了
用容量类就用Collections.sort
数组就用Arrays.sort
还有什么不清楚直接m我
网络知道最近抽风了
不能回答追问

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

看代码:

importjava.util.ArrayList;
importjava.util.Arrays;
importjava.util.Collections;

publicclassDemo{

publicstaticvoidmain(String[]args)throwsException{
Pair[]pairs={
newPair(0,1),
newPair(2,9),
newPair(7,0),
newPair(8,8),
newPair(8,6),
newPair(9,2),
newPair(1,5),
newPair(8,2),
newPair(9,15),
newPair(9,5)
};
ArrayList<Pair>pairList=newArrayList<>(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的实例比较
classPairimplementsComparable<Pair>{

publicintleft;
publicintright;

publicPair(intleft,intright){
this.left=left;
this.right=right;
}

@Override
publicStringtoString(){
return"["+left+","+right+"]";
}

//排序规则,先按left排序,再按right排序
@Override
publicintcompareTo(Pairthat){
if(this.left>that.left){
return1;
}elseif(this.left<that.left){
return-1;
}elseif(this.right>that.right){
return1;
}elseif(this.right<that.right){
return-1;
}
return0;
}

}

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

⑻ java ArrayList 降序排序问题

public static void main(String[] args) {

ArrayList<Integer> arr=new ArrayList<>();
arr.add(89);
arr.add(78);
arr.add(56);
arr.add(92);
arr.add(76);

//升序排列;
Collections.sort(arr);

//逆序输出
Collections.reverse(arr);
for(int i=0;i<arr.size();i++){
//这就是你要的效果
System.out.println("0"+i+" "+arr.get(i));
}

}

热点内容
王者荣耀电脑如何改战区安卓 发布:2025-01-17 13:23:18 浏览:814
华为手机如何开启说出密码 发布:2025-01-17 13:23:12 浏览:101
服务器在美国说明什么 发布:2025-01-17 13:14:10 浏览:11
启辰t90有哪些配置 发布:2025-01-17 13:05:40 浏览:38
手机微博密码怎么改密码忘了怎么办 发布:2025-01-17 13:04:44 浏览:959
微笑云服务器 发布:2025-01-17 13:03:25 浏览:83
android顶部标题栏 发布:2025-01-17 13:02:28 浏览:692
androidjs传递参数 发布:2025-01-17 12:51:54 浏览:477
建筑大师辅助脚本 发布:2025-01-17 12:47:33 浏览:331
sql向上 发布:2025-01-17 12:43:57 浏览:275