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;
}
}
Collections
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.