java工具类的特点_Java中的工具类和新特性

/*

集合框架的工具类。

Collections:集合框架的工具类。里面定义的都是静态方法。

Collections和Collection有什么差别?

Collection是集合框架中的一个顶层接口。它里面定义了单列集合的共性方法。

它有两个经常使用的子接口,

List:对元素都有定义索引。有序的。

能够反复元素。

Set:不能够反复元素。无序。

Collections是集合框架中的一个工具类。

该类中的方法都是静态的

提供的方法中有能够对list集合进行排序,二分查找等方法。

通经常常使用的集合都是线程不安全的。

由于要提高效率。

假设多线程操作这些集合时。能够通过该工具类中的同步方法。将线程不安全的集合。转换成安全的。

*/

import java.util.*;

class CollectionsDemo

{

public static void main(String[] args)

{

sortDemo();

}

public static void binarySearchDemo()

{

List list = new ArrayList();

list.add("abcd");

list.add("aaa");

list.add("zz");

list.add("kkkkk");

list.add("qq");

list.add("z");

Collections.sort(list,new StrLenComparator());

sop(list);

//int index = Collections.binarySearch(list,"aaaa");

//int index = halfSearch(list,"cc");

int index = halfSearch2(list,"aaaa",new StrLenComparator());

sop("index="+index);

}

public static int halfSearch(List list,String key)

{

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 list,String key,Comparator 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 list = new ArrayList();

list.add("abcd");

list.add("aaa");

list.add("zz");

list.add("kkkkk");

list.add("qq");

list.add("z");

Collections.sort(list);

sop(list);

String max = Collections.max(list/*,new StrLenComparator()*/);

sop("max="+max);

}

public static void sortDemo()

{

List list = new ArrayList();

list.add("abcd");

list.add("aaa");

list.add("zz");

list.add("kkkkk");

list.add("qq");

list.add("z");

sop(list);

//Collections.sort(list);

Collections.sort(list,new StrLenComparator());

//Collections.swap(list,1,2);

sop(list);

}

public static void sop(Object obj)

{

System.out.println(obj);

}

}

class StrLenComparator implements Comparator

{

public int compare(String s1,String s2)

{

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

return 1;

if(s1.length()

return -1;

return s1.compareTo(s2);

}

}

/*

class Student

{

}

list.add(new Student());

public static > void sort(List list)

{

}

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值