Collections

package collectionDemo;
import java.util.*;
class CollectionDemo 
{
	public static void main(String[] args) 
	{
		List<String> list=new ArrayList<String>();
		list.add("ad");
		list.add("adekd");
		list.add("cdfed");
		list.add("zzazzz");
		//fillDemo(list);
		//binarySearchDemo();
		sortDemo();
	}
	//打印輸出
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
	//排序
	public static void sortDemo()
	{
	    List<String> list=new ArrayList<String>();
		list.add("ad");
		list.add("adekd");
		list.add("cdfed");
		list.add("zzazzz");	
		sop(list);
		//Collections.sort(list,Collections.reverseOrder(new StrLenComparator()));
		//隨機存放元素
		Collections.shuffle(list);
		//交換兩個元素的位置
		Collections.swap(list,1,3);
		sop(list);
	}
	//最大值
    public static void maxDemo()
	{
		
        List<String> list=new ArrayList<String>();
		list.add("ad");
		list.add("adekd");
		list.add("cdfed");
		list.add("zzzzz");
		sop(Collections.max(list));
	}
	//二分法查找
	public static void binarySearchDemo()
	{
        List<String> list=new ArrayList<String>();
		list.add("ad");
		list.add("adekd");
		list.add("cdfed");
		list.add("zzzzz");
		//sop(Collections.binarySearch(list,"ad",new StrLenComparator()));
		int index=myBinarySearch(list,"zzzazz");
		sop(index);
	}
	//全部替換:
	public static void fillDemo(List<String> list)
	{
      // Collections.fill(list,"haha");
      //Collections.replaceAll(list,"ad","aaaaa");
	  Collections.reverse(list);
	   sop(list);
	}
	public static int myBinarySearch(List<String> list,String key)
	{
		int max,min,mid;
		min=0;
		max=list.size()-1;
		while(min<=max)
		{
			mid=(min+max)>>1;
			String str=list.get(mid);
			int num=str.compareTo(key);
			if(num<0)
				min=mid+1;
			else if(num>0)
				max=mid-1;
			else
				return mid;
		}
		return -min-1;
	}
}
//比較器
class StrLenComparator implements Comparator<String>
{
	public int compare(String str1,String str2)
	{
		int num=new Integer (str1.length()).compareTo(new Integer(str2.length()));
		if(num==0)
			return str1.compareTo(str2);
		return num;
	}
}

發佈了69 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章