wangerxiansheng

Collections是个服务于Collection的工具类(静态的),它里面定义了一些集合可以用到的方法。

本文演示了Collections类里sort()的两个方法。第一种只需传入被排序的集合,便会为它自然排序。但有时我们需要自定义排序的方式,这是我们就得定义一个比较器,里面定义我们要排序的方式,调用sort()时,把被排序的集合和比较器同时传入,就可以按照自定义的方式排序了。

package Test602;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;

/**
 * 对字符串进行自然排序和长度排序
 */
public class CollectionsDemo {

	public static void main(String[] args) {
		ArrayList<String> al = new ArrayList<String>();
		al.add("fa");
		al.add("gaa");
		al.add("xa");
		al.add("vacvh");
		al.add("wetq");
		al.add("hja");
		al.add("jewik");
		getAl(al);
		System.out.println(ziRanSort(al));
		System.out.println(strLenSort(al));
		
	}
	//按原序列取出ArrayList的元素
	public static void getAl(ArrayList<String> al)
	{
		Iterator<String> it = al.iterator();
		//String result = null;
		while(it.hasNext())
		{
			String result = it.next();
			System.out.println(result);
		}
	
	}
	//进行自然排序
	public static ArrayList<String> ziRanSort(ArrayList<String> al)
	{
		Collections.sort(al);
		return al;
		
	}
	//按照字符串长度进行排序
	public static ArrayList<String> strLenSort(ArrayList<String> al)
	{
		StrLenComparator comp = new StrLenComparator();
		Collections.sort(al, comp);
		return al;
		
	}
}

新建一个类,里面自定义一个比较器(按照字符串的长度进行比较)

package Test602;

import java.util.Comparator;

public class StrLenComparator implements Comparator<String>{

	public int compare(String str1, String str2) {
		// TODO Auto-generated method stub
		if(str1.length()>str2.length())
		{
			return 1;
		}
		if(str1.length()<str2.length())
		{
			return -1;
		}
		
		return 0;
	}

}



 

 

分类:

技术点:

相关文章:

  • 2022-02-25
  • 2021-09-11
  • 2021-12-28
  • 2021-08-18
  • 2021-08-05
  • 2021-04-05
  • 2021-07-07
  • 2022-03-06
猜你喜欢
  • 2021-09-28
  • 2022-01-09
  • 2022-02-09
  • 2022-03-05
  • 2021-10-25
  • 2021-09-30
  • 2022-02-21
相关资源
相似解决方案