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

java集合(工具类Collections)

2015-08-08 08:59 525 查看
/*

 *1 Collections.sort(list集合,比较器);

 *sort方法不仅可以对list进行自然排序,还可以根据需求定义比较器进行排序。

 *sort方法不能对Set集合进行排序。

 *binarySearch方法对集合进行插入,且保证集合有序,如果查找的元素不存在

 *则返回比该元素大一个位置的元素的下标加一的相反数,他的原理是折半查找。

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

 *练习,将集合中部分元素替换成指定元素。

 *replaceAll方法将某一元素替换成指定元素。

 *reverse方法将所有的元素反转。

 *swap方法将集合中指定的两个元素置换位置。

 *shuffle方法将集合中的所有元素随机排列一次。

 */

import java.util.*;

public class CollectionsDemo {

public static void main(String[] args) {
//sortDemo();
//maxDemo();
//binarySearchDemo();
   //fillDemo();
//replaceAllDemo();
shufleDemo();
}
public static <T> void sop(T t)
{
System.out.println(t);
}
//将集合中的所有元素随机排列一次
public static void shufleDemo(){
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("z");
list.add("kkkk");
list.add("qq");
list.add("zz");
sop(list);
Collections.shuffle(list);
sop(list);
}
//将某一元素替换成指定元素。
public static void replaceAllDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("z");
list.add("kkkk");
list.add("qq");
list.add("zz");
sop(list);
//Collections.replaceAll(list,"aaa","pp");
//Collections.reverse(list);
Collections.swap(list,1, 2);
sop(list);
}
//将list集合中所有的元素替换成指定元素。
public static void fillDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("z");
list.add("kkkk");
list.add("qq");
list.add("zz");
sop(list);
Collections.fill(list,"pp");
sop(list);
}

//binarySearch方法对集合进行插入,且保证集合有序.
public static void binarySearchDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("z");
list.add("kkkk");
list.add("qq");
list.add("zz");
//使用sort方法进行排序
Collections.sort(list);
sop(list);
int index=Collections.binarySearch(list,"oo");
sop(index);
}
//取最大值
public static void maxDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("z");
list.add("kkkk");
list.add("qq");
list.add("zz");
//使用sort方法进行排序
Collections.sort(list);
sop(list);
//使用max方法取最大值。
String max=Collections.max(list);
sop("max="+max);
}
//使用sort方法进行排序。
public static void sortDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("z");
list.add("kkkk");
list.add("qq");
list.add("z");
sop(list);
Collections.sort(list,new Comlength());
sop(list);
}

}

//定义比较字符串长度的比较器。

class Comlength implements Comparator<String>{

public int compare(String o1, String o2) {
if(o1.length()>o2.length())
return 1;
else if(o1.length()<o2.length())
return -1;
else return o1.compareTo(o2);
}

}

/*

 * reverseOrder()方法给TreeSet集合传递一个逆序比较器,将所有元素反序。

 * reverseOrder()还有一个重载方法reverseOrder(Comparator<T> cmp) 

          返回一个比较器,它强行逆转指定比较器的顺序。

 * 

 */

import java.util.Collections;

import java.util.Comparator;

import java.util.Iterator;

import java.util.TreeSet;

public class CollectionsDemo2 {
public static void main(String args[])
{
orderDemo();
}

public static void orderDemo()
{
//调用有参的reverseOrder方法,首先按照其参数比较器对集合进行排序,再强行将集合元素反序。
TreeSet<String> ts=new TreeSet<String>(Collections.reverseOrder(new StrComparator2()));
ts.add("abvde");
ts.add("a");
ts.add("kk");
ts.add("ccc");
Iterator<String> it=ts.iterator();
while(it.hasNext())
{
sop(it.next());
}
}
public static <T> void sop(T t)
{
System.out.println(t);
}

}

//定义一个比较器

class StrComparator implements Comparator<String>

{
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}

}

//定义一个比较器

class StrComparator2 implements Comparator<String>

{
public int compare(String o1, String o2) {
if(o1.length()>o2.length())
return 1;
if(o1.length()<o2.length())
return -1;
return o1.compareTo(o2);
}

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