ArrayList排序一练习

博客展示了使用Comparator比较器对数字5、9、1、7进行排序的结果,排序后为1、5、7、9。还介绍了通过get方法、迭代器正序和逆序遍历排序后结果的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package cn.com.collections.sort;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.ListIterator;

import org.junit.BeforeClass;
import org.junit.Test;

public class ListPaiXu {
	public static void main(String[] args) {
		init();
		testComparatorSort();
	};
	// 抽取两个公用的
		static ArrayList<Integer> list = new ArrayList<Integer>();

		// @BeforeClass注解标注的方法会在其它测试方法执行之前先执行,
		// 且只执行一次.@Before注解标注的方法会在每个测试方法之前执行;
		// 此处初始化集合只需要一次,因此使用@BeforeClass.
		@BeforeClass
		public static void init() {
			list.add(5);
			list.add(9);
			list.add(1);
			list.add(7);
			System.out.println("排序前:");
			for (Integer Integer : list) {
				System.out.println(Integer);
			}
		}
		/**使用Comparator比较器按age升序排序*/
	    //@Test  //如果通过main方法调用的话,void前面需要添加static关键字,表示共享
	    public static void testComparatorSort(){
	    	//通过1: Collections.sort()方法排序,
	    	//2:创建一个比较器,实现比较的方法,
	    	//3:最后遍历输出比较后的排序
	    	//创建一个比较器
	    	Collections.sort(list,new Comparator<Integer>() {
				public int compare(Integer s1, Integer s2) {
					if (s1 instanceof Integer && s2 instanceof Integer) {
						Integer e1 = (Integer) s1;
	    				Integer e2 = (Integer) s2;
	    				//升序排序
	    				return e1.compareTo(e2);
	    				//降序排序
	    				//return e2.compareTo(e1);
					}
					throw new ClassCastException("不能转换为Integer类型");
				}
			});
	    	////1;通过增强for方法遍历
			System.out.println("使用Comparator比较器排序后:");
			for (Integer Integer : list) {
				System.out.println(Integer);
			}
			//1;通过get方法遍历
			System.out.println("通过get方法遍历================");
			for (int i = 0; i < list.size(); i++) {
				System.out.println(list.get(i)+",");
			}
			//2通过迭代器遍历
			System.out.println("通过迭代器遍历================");
			ListIterator<Integer> it = list.listIterator();//获取到迭代器
			while(it.hasNext()){
				System.out.println(it.next()+",");
			}
			//3 使用迭代器逆序遍历,默认倒序排列
			System.out.println("\r\n======使用迭代器逆序遍历==========");
			while(it.hasPrevious()){
				System.out.print(it.previous()+",");
			}
		}
	    }	

输出结果:

排序前:
5
9
1
7
使用Comparator比较器排序后:
1
5
7
9
通过get方法遍历================
1,
5,
7,
9,
通过迭代器遍历================
1,
5,
7,
9,

======使用迭代器逆序遍历==========
9,7,5,1,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值