java-Collections的应用

Collection和Collections的区别:

Collection是JAVA集合框架中的顶层接口.常用的两个子接口为:Set和List.

Collections是Java集合框架中操作集合的工具类,所有的方法都是静态的.提供了对List进行排序的功能,也提供了将线程不安全的转为线程安全的方法.

 

import java.util.*;
class CollectionsDemo
{
 public static void main(String[] args)
 {
  ArrayList<String> al = new ArrayList<String>();
  al.add("zdd");
  al.add("ad");
  al.add("qsdw");
  al.add("vwerre");
  al.add("sxsd");
  
  System.out.println("***按照自然顺序***");
  String max = Collections.max(al);
  String min = Collections.min(al);
  System.out.println("max="+max+";min="+min);

  System.out.println("***按照字符长度***");
  String max1 = Collections.max(al, new MyComparator());
  String min1 = Collections.min(al, new MyComparator());
  System.out.println("max="+max1+";min="+min1);
  
  Collections.sort(al);  

  System.out.println(al.toString());
  toMyString(al );

  int num = Collections.binarySearch(al, "qsdw");
  System.out.println(num);

        Collections.sort(al, new MyComparator()); 
  System.out.println(al.toString());
  int num1 = myBinarySearch(al, "qsdw", new MyComparator());
  System.out.println(num1);  
 }
 public static void toMyString(ArrayList<String> al)
 {
  StringBuilder sb = new StringBuilder();
  sb.append("[");
  for (Iterator it = al.iterator(); it.hasNext(); )
  {
   sb.append(it.next() + ", ");
  }
  //sb.deleteCharAt(sb.length() - 2);
  sb.delete(sb.length()-2,sb.length());
  sb.append("]");
  System.out.println(sb);
 }

 public static int myBinarySearch(List <String> l, String key, Comparator<String> comp)
 {
  int max,min,mid;
  max = l.size() - 1;
  min = 0;  
  while (min <= max)
   
   mid = (max + min)/2;
   int num = comp.compare(key, l.get(mid)); //按照自定义比较器比较
   if (num > 0)
    min = mid + 1;
   else if (num < 0)
    max = mid - 1;
   else
    return mid;
  }
  return -1;
 }

}

class MyComparator implements Comparator <String>
{
 public int compare(String str1, String str2)
 {
  if (str1.length() > str2.length())
   return 1;
  else if (str1.length() < str2.length())
   return -1;
  else
   return str1.compareTo(str2);
 }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值