黑马程序员_集合框架工具类

来源:互联网 发布:大数据时代的到来 编辑:程序博客网 时间:2024/04/30 01:29

------- android培训java培训、期待与您交流! ---------- 

 

Collections

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

2.CollectionsCollection有什么区别?

Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。它有两个常用的子接口,List:对元素都有定义索引。有序的。可以重复元素。Set:不可以重复元素,无序。

Collections是集合框架中的一个工具类。该类中的方法都是静态的,提供的方法中有可以对list集合进行排序,二分查找等方法。通常常用的集合都是线程不安全的。因为要提高效率。如果多线程操作这些集合时,可以通过该工具类中的同步方法,将线程不安全的集合,转换成安全的。

3.Collections中的一般方法

reverse()反转指定列表中元素的顺序。

replaceAll(List<T> list, T oldVal, T newVal)使用另一个值替换列表中出现的所有某一指定值。

fill()使用指定元素替换指定列表中的所有元素。

shuffle(List<?> list, Random rnd)使用指定的随机源对指定列表进行置换。

sort()对指定列表进行排序。

binarySerch()使用二分搜索法搜索指定列表,以获得指定对象。

4.Collection接口中的toArray()(集合变数组)

5.指定类型的数组到底要定义多长。

       当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组。长度为集合的size

       当指定类型的数组长度大于了集合的size,就不会新创建了数组。而是使用传递进来的数组。

       所以创建一个刚刚好的数组最优。

Arrays

1. 用于操作数组的工具类。里面都是静态方法。

2. asList将数组转成List集合的好处:可以使用集合的思想和方法来操作数组中的元素。

注意:将数组变成集合,不可以使用集合的增删方法。因为数组的长度是固定。如果你增删。那么会反生UnsupportedOperationException

3.如果数组中的元素都是对象。那么变成集合时,数组中的元素就直接转成集合中的元素。如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。

4.toArray集合变数组。

高级for循环

1.CollectionJDk1.5后出现的父类接口Iterable就是提供了这个for语句。

2.格式:for(数据类型变量名:数据或集合){执行语句;}

3.对集合进行遍历。

(1)高级for循环只能获取集合元素。但是不能对集合进行操作。

(2)迭代器除了遍历,还可以进行remove集合中元素的动作。

(3)如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。

4.传统for和高级for有什么区别呢?

高级for有一个局限性。必须有被遍历的目标。建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义脚标。

示例:使用高级for循环对集合进行遍历。

import java.util.HashMap;

import java.util.Set;

class ForEachDemo

{

public staticvoid main(String[] args)

       {

              HashMap<Integer,String> hm = newHashMap<Integer,String>();

              hm.put(1,"a");

              hm.put(2,"b");

              hm.put(3,"c");

              Set<Integer> keySet = hm.keySet();

              for(Integer i : keySet)

              {

                     System.out.println(i+"::"+hm.get(i));

              }

       }

}

可变参数

1. 其实就是上一种数组参数的简写形式。不用每一次都手动的建立数组对象。只要将要操作的元素作为参数传递即可。隐式将这些参数封装成了数组。

2.可变参数是JDK1.5版本出现的新特性。

3.格式:返回值类型 函数名(参数类型行式参数){执行语句;}

其实接收的是一个数组,可以指定实际参数个数。

3.用到函数的参数上,当要操作的同一个类型元素个数不确定的时候,可用这个方式,这个参数可以接受任意个数的同一类型的数据。

4.在使用时注意:可变参数一定要定义在参数列表最后面。

静态导入

1. 当类名重名时,需要指定具体的包名。当方法重名是,指定具备所属的对象或者类。

2.import static  java.lang.System.*;//导入了System类中所有静态成员。

------- android培训java培训、期待与您交流! ---------- 

 

0 0
原创粉丝点击