码迷,mamicode.com
首页 > 编程语言 > 详细

java集合(工具类Collections)

时间:2015-08-08 09:09:31      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:collections 集合工具类

/*
 *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);
}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

java集合(工具类Collections)

标签:collections 集合工具类

原文地址:http://blog.csdn.net/qq_29817411/article/details/47354981

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!