java-16(4)-工具类

来源:互联网 发布:2016免费洗车软件 编辑:程序博客网 时间:2024/06/04 18:33

1.工具类,是对集合和数组功能的补充。

工具类有两种Collections是集合框架工具类,里面的方法是静态的。Arrays是数组工具类,里面的方法是静态的。

2.Collections常用的方法

Collections:    排序:        sort();        sort(list,Comparator);    交换值:        swap(list,i,j);    折半查找:        binarySearch(list,key);    获取最大值:        max();        max(list,Comparator);通过不同的比较器,获取最大值。    替换:        repalceAll(list,Old,New);指定替换        fill(list,new);全部替换    排列:        shuffle(list);随机排列    逆转顺序:        Comparator<T> reverseOrder();        Comparator<T> reverseOrder(Comparator<T> cmp)

2.2 Arrays常用方法

Arrays里面最重要的一个方法是public static <T> List<T> asList(T... a)好处:可以使用集合的方法操作数组元素。注意:数组的长度是固定的,所以对于集合增删方法是不可以使用的,否则会放生异常。可以实现数组转集合;如果数组中的元素是对象,那么转成集合时,直接将数组中的元素作为集合中的元素进行存储。如果数组中的对象是基本数据类型,那么会将该数组作为集合中的元素进行存储。集合转数组,使用的是Collections中的toArray方法。集合转数组可以对集合中的元素操作的方法进行限定,不允许对其增删。

3.给非同步的集合加锁原理

List list = new ArrayList();//非同步list = MyCollections.synList(list);//返回了一个同步的list//给非同步的集合加锁class MyCollection{    public static List synList(List list){        return new MyList(list);    }    //私有内部类    private class MyList implements List{        private List list;        private static final Object lock = new Object();        MyList(List list){            this.list = list;        }        public boolean add(Object obj){            synchronized(lock){                return list.add(obj);            }        }        public boolean remove(Object obj){            synchronized(lock){                return list.remove(obj);            }        .....    }} 

4 foreach
foreach语句;

   * 格式;   * for(类型 变量:Collection集合|数组)   *   *   * 传统for和高级for的区别   * 传统for可以完成对语句执行很多次,因为可以定义控制循环的增量和条件。   *   * 高级for是一种简化形式。   * 它必须有遍历的目标。该目标要么是数组,要么是Collection单列集合。   * 对数组的遍历如果仅仅是为了获取数组中的元素,可以使用高级for。   * 如果要对数组的角标进行操作建议使用传统for。   *   *可以使用高级for遍历map集合么?   *不可以直接使用,高级for只能遍历单列集合。但是,可以将map转成单列的set,就可以用了。   *

5.函数的可变参数。

*函数的可变参数,其实就是一个数组,但是接受的是数组中的元素,自动将这些元素封装成了数组,简化了调用者的书写。** 注意事项:* 可变参数类型必须定义在参数列表的结尾处。
原创粉丝点击