您的位置:首页 > 编程语言 > Java开发

Java基础--集合框架之Collections

2015-04-27 17:45 393 查看
凌风博客原创作品。转载请注明出处:http://blog.csdn.net/q549130180/article/details/45313475

集合框架工具类

Collections

[java] view
plaincopy





import java.util.*;

class CollectionsDemo1

{

public static void main(String[] args)

{

shuffleDemo();

}

public static void shuffleDemo()

{

//将原有顺序打乱,从新存入集合

List<String> list = new ArrayList<String>();

list.add("abcd");

list.add("aaa");

list.add("bb");

list.add("zz");

list.add("qq");

list.add("dddddd");

sop(list);

Collections.shuffle(list);

sop(list);

}

public static void orderDemo()

{

/*

//反转list集合

TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());

ts.add("abcde");

ts.add("aaa");

ts.add("kkk");

ts.add("ccc");

*/

//根据长度进行反转

TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new StrLenComparator()));

ts.add("abcde");

ts.add("aa");

ts.add("k");

ts.add("ccc");

Iterator it = ts.iterator();

while (it.hasNext())

{

sop(it.next());

}

}

public static void replaceAllDemo()

{

//根据元素替换值

List<String> list = new ArrayList<String>();

list.add("abcd");

list.add("aaa");

list.add("bb");

list.add("zz");

list.add("qq");

list.add("dddddd");

sop(list);

Collections.replaceAll(list,"aaa","pp");

sop(list);

}

public static void fillDemo()

{

//fill方法可以将list集合中所有元素替换成指定元素

List<String> list = new ArrayList<String>();

list.add("abcd");

list.add("aaa");

list.add("bb");

list.add("zz");

list.add("qq");

list.add("dddddd");

sop(list);

Collections.fill(list,"qq");//将list集合中所有元素替换成qq

sop(list);

}

public static void binarySearchDemo()

{

List<String> list = new ArrayList<String>();

list.add("abcd");

list.add("aaa");

list.add("bb");

list.add("zz");

list.add("qq");

list.add("dddddd");

Collections.sort(list);

sop(list);

int index = Collections.binarySearch(list,"aaa"); //返回负数表示不存在

sop("index="+index);

}

public static int halfSearch(List<String> list,String key)

{

//binarySearch实现原理

int max,min,mid;

max = list.size()-1;

min = 0;

while (min<=max)

{

mid = (max+min)>>1; // /2;

String str = list.get(mid);

int num = str.compareTo(key);

if(num>0)

max = mid-1;

else if(num<0)

min = mid+1;

else

return mid;

}

return -min-1;

}

public static int halfSearch2(List<String> list,String key,Comparator<String> cmp)

{

//比较器实现原理

int max,min,mid;

max = list.size()-1;

min = 0;

while (min<=max)

{

mid = (max+min)>>1; // /2;

String str = list.get(mid);

int num = cmp.compare(str,key);

if(num>0)

max = mid-1;

else if(num<0)

min = mid+1;

else

return mid;

}

return -min-1;

}

public static void maxDemo()

{

//方法作用:获取集合中最大值

List<String> list = new ArrayList<String>();

list.add("abcd");

list.add("aaa");

list.add("bb");

list.add("zz");

list.add("qq");

list.add("dddddd");

Collections.sort(list);

sop(list);

String max = Collections.max(list/*,new StrLenComparator() //取长度最大*/);

sop("max="+max);

}

public static void sortDemo()

{

//方法作用:给list集合进行排序

List<String> list = new ArrayList<String>();

list.add("abcd");

list.add("aaa");

list.add("bb");

list.add("zz");

list.add("qq");

list.add("dddddd");

sop(list);

//Collections.sort(list);//给List集合进行排序

Collections.sort(list,new StrLenComparator());//给List集合按长度进行排序

sop(list);

}

public static void sop(Object obj)

{

System.out.println(obj);

}

}

class StrLenComparator implements Comparator<String>

{

public int compare(String s1,String s2)

{

if(s1.length()>s2.length())

return 1;

if(s1.length()<s2.length())

return -1;

return s1.compareTo(s2);

}

}

Array:用于操作数组的工具类,里面都是静态方法。

[java] view
plaincopy





import java.util.*;

class ArraysDemo2

{

public static void main(String[] args)

{

//int[] arr = {2,4,5};

//System.out.println(Arrays.toString(arr));

String[] arr = {"abc","cc","kkkk"};

/*

把数组变成list集合有什么好处?

可以使用集合的思想和方法来操作数组中的元素

注意:将数组变成集合后,不可以使用集合的增删方法,

因为数组的长度是固定的,可以使用contains,get等方法

如果你增删,那么会发生Unsupported{perationException(不支持操作异常)

*/

List<String> list = Arrays.asList(arr);

System.out.println("contains:"+list.contains("cc")); //遍历集合,看cc是否存在

//list.add("qq");//Unsupported{perationException(不支持操作异常)

System.out.println(list);

//-----------------------------------

//int [] nums = {2,4,5};

Integer [] nums = {2,4,5};

List<Integer> li = Arrays.asList(nums);

/*

如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素。

如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。

*/

System.out.println(li);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐