集合框架的工具类----Collections

来源:互联网 发布:广东省大数据局级别 编辑:程序博客网 时间:2024/06/10 04:22
/* *集合框架的工具类 *Collections */import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;public class CollectionsDemo {public static void main(String[] args) {sortDemo();System.out.println();binarySearshDemo();}public static void binarySearshDemo(){ArrayList<String> list=new ArrayList<String>();list.add("asdas");list.add("rtr");list.add("hh");list.add("hh");list.add("aa");list.add("asdadcsdfs");list.add("ujuku");Collections.sort(list);sop(list);//必须要先排序,才能使用binarySearch方法int index=Collections.binarySearch(list, "rtrq");int index1=halfSearch(list,"rtrq");sop("index:"+index);sop("index1:"+index1);}//binarySearch方法的原理public static int halfSearch(ArrayList<String> list,String key){int max,min,mid;max=list.size()-1;min=0;while(min<=max){mid=(min+max)>>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;elsereturn mid;}return -min-1;}//比较器原理(如果元素自身不具备比较器,就要自定义一个比较器)public static int halfSearch2(ArrayList<String> list,String key,Comparator<String> cmp){int max,min,mid;max=list.size()-1;min=0;while(min<=max){mid=(min+max)>>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;elsereturn mid;}return -min-1;}public static void sortDemo(){ArrayList<String> list=new ArrayList<String>();list.add("asdas");list.add("rtr");list.add("hh");list.add("hh");list.add("aa");list.add("asdadcsdfs");list.add("ujuku");sop("排序前:");sop(list);Collections.sort(list);sop("自然排序的结果:");sop(list);//int index=halfSearch2(list,"aa",new StrLenComparator());Collections.sort(list,new StrLenComparator());sop("按照长度排序:");sop(list);//sop(index);String valuemax=Collections.max(list);sop("valuemax:"+valuemax);String lenmax=Collections.max(list,new StrLenComparator());sop("Lenmax:"+lenmax);}public static void sop(Object obj){System.out.println(obj);}}class StrLenComparator implements Comparator<String>{@Overridepublic int compare(String s1, String s2) {// TODO 自动生成的方法存根if(s1.length()>s2.length())return 1;if(s1.length()<s2.length())return -1;return s1.compareTo(s2);}}


结果图:


5 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 主板没有m.2接口怎么办 点痣留下了疤怎么办 危险三角区长痘痘怎么办 挤了危险三角区怎么办 三角区长痘挤了怎么办 三角区发红长痘怎么办 激光祛斑碰水了怎么办 激光打痣留下坑怎么办 点痣之后留下坑怎么办 去痣留下的红印怎么办 激光点痦子留疤怎么办 激光点痣的疤痕怎么办 做完眉毛碰水了怎么办 脸上疤掉了有坑怎么办 结痂不小心抠掉怎么办 脸上肉松弛怎么办19岁 点痣留下来的疤怎么办 激光祛斑的红印怎么办 脸上疤掉了红印怎么办 痘痘发炎了红肿怎么办 脸上的斑越来越多了怎么办 点痣留下的疤痕怎么办 额头又高又大怎么办 脸太长额头太高怎么办 动车因台风停运怎么办 爸妈50了要离婚怎么办 鸿利彩票黑了钱怎么办 忘了锁屏图案怎么办 黄金被水银沾上怎么办 被股东了我该怎么办 异地恋没话题聊怎么办 谈了半年分手了怎么办 博士6年没毕业怎么办 发现孩子早恋家长应该怎么办 异地恋想嘿嘿嘿怎么办 妈妈溜冰溜大了怎么办 皮鞋被雨水泡了怎么办 老婆提出离婚我不想离怎么办 极度缺爱的人怎么办 生二胎住院大宝怎么办 爸妈偏心我该怎么办