黑马程序员 Collections 和其他类的应用

来源:互联网 发布:网络整合营销理论 编辑:程序博客网 时间:2024/06/07 00:06


-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------
Collections 是一个工具类 里面的方法都是静态的.Collections 是对集合操作的工具类,里面分装了大量的静态方法.对是可以用来对集合进行操作的.1.sort(List<T> list);这是用来对元素进行自然排序的.在我们把,元素存放到,不具备比较的集合中的时候要对元素进行,自然排序的操作,那么就可以用此方法来实现.main(String[] args){List<String> list= new ArrayList<String>();list.add("c");list.add("d");list.add("a");Collections.sort(list);sop(list);}public static void sop(Object obj){System.out.println(obj);}}当我们不想用这种方式来实现的时候,那么我们可以采用另外一种方式来完成.就是利用 Collections 工具类中,另外一个方法就是,sort(List<T> list, Comparator cop);传一个比较器进来,来实现你想比较的方式,下面的代码是按照长度来排序的.main(String[] args){List<String> list= new ArrayList<String>();list.add("c");list.add("d");list.add("a");Collections.sort(list,new Co());class Co 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);}}}还有的方法就是取处里面的最大值或者是最小值.用到的方法是max(List<T> list);最大值min(List<T> list);最小值main(String[] args){List<String> list= new ArrayList<String>();list.add("ccaaaaaac");list.add("dddd");list.add("aa");sop(Collections.max(list));sop(Collections.min(list));}还有就是 Collections 中的方法1,reverse(list);反转里面的元素,打印出来的结果正好是,和存储进去的时候是相反的.main(String[] args){List<String> list= new ArrayList<String>();list.add("ccaaaaaac");list.add("dddd");list.add("aa");Collections.reverse(list);sop(list);}2,Fill(List<T> list,Object obj)方法可以将list集合中的所有元素替换成指定元素,main(String[] args){List<String> list= new ArrayList<String>();list.add("ccaaaaaac");list.add("dddd");list.add("aa");Collections.fill(list, "wo ai ni");sop(list);}3,replaceAll(list,老值,新值)main(String[] args){List<String> list= new ArrayList<String>();list.add("ccaaaaaac");list.add("dddd");list.add("aa");Collections.replaceAll(list, "aa", "wo ");sop(list);}还有一些其他类的应用 如;Arrays 是专门用来操作数组的工具类.它里面有的方法,是可以把一个数组变成一个集合.用到的方法就是 asList(Object[] obj);1,数组为什么要变成集合呢?以为数组的长度,和里面的元素都是固定的,不可以对他们进行增删的操作那么我们把数组变成集合,以后就可以利用集合的特点对,数组里面的元素进行操作如果是基本数据类型的数组,那么变成集合以后是不可以得到里面的元素的,基本类型的数组,本身就是一个对象,如果我们把,他装到集合中的话,那么,我们装的,只是这个数组本身的对象而已.并不是里面的元素,如果把基本数据类型都用对象封装的话就是可以的int[] arr= {1,2,3};这样式不行的Integer[] arr= {1,2,3};这样是可以的String[] str= {"zhangsan","lisi","wangwu"};这不是基本类型就是可以的sop(Arrays.asList(str));int[] arr={1,2,3};基本数据类型是不可以Integer[] arr= {1,2,3};这样是可以的.sop(Arrays.asList(arr));2,为什么要将,集合变成数组呢?就是为了不要对里面的元素,进行增删操作这里面就有这样一个问题,就是我们转变的这个数组的长度是多少呢?这个数组的长度就是,该集合的长度这样是做合适的,String[] str1= (String[]) list.toArray(new String[list.size()]);就是这样的.main(String[] args){List<String> list= new ArrayList<String>();list.add("ccaaaaaac");list.add("dddd");list.add("aa");String[] str1= (String[]) list.toArray(new String[list.size()]);System.out.println(Arrays.toString(str1));}静态导入是JDK1.5以后的新特性举例说明静态导入之前的代码:public class TestStatic {        public static void main(String[] args) {             System.out.println(Integer.toHexString(42));        }   }   静态导入之后的代码:import static java.lang.System.out;   public class TestStaticImport {           public static void main(String[] args) {           out.println("静态导入以后就是说类名可以不写了,System 类中有一个静态的方法是 out");        }   }这样就是在简化代码的,书写长度,上面这两个类都可以使用静态导入的方法完成


-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------
0 0