2018-08-01集合Collection+Iterator迭代器+泛型+增强For循环

 

 

 

集合是Java中提供的一种容器,可以用来存储多个数据!

//数组与集合的区别:数组的长度是固定的,集合的长度是可变的,集合中存储的元素必须是引用类型数据(包装类)!

 

Collection接口常用的子接口有:List接口、Set接口!

①   List接口常用的子类有:ArrayList类、LinkedList类(存进去什么顺序,取出来时就是什么顺序)!

②   Set接口常用的子类有:HashSet类、LinkedHashSet类(存进去什么顺序,取出来时顺序不一定)!

//接口之间继承用extends,子类继承用implements!

 

既然Collection接口是集合中的顶层接口,那么它中定义的所有功能子类都可以使用!

Iterator迭代器:

Java中提供了很多个集合,它们在存储元素时,采用的存储方式不同!要取出这些集合中的元素,可通过一种通用的获取方式来完成:Iterator迭代器!

 

Collection集合元素的通用获取方式:在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来!一直把集合中的所有元素全部取出,这种取出方式专业术语称为迭代(即遍历)!

 

//示例代码:

//由于ArrayList的父类是Collection,所以可以用多态创建集合:

Collection TestArr=new ArrayList<String>();

TestArr.add("小猪佩奇");

TestArr.add("小猪乔治");

TestArr.add("小马宝莉");

TestArr.add("海绵宝宝");

TestArr.add("天线宝宝");

//创建Iterator迭代器对象:

Iterator TestIt=TestArr.iterator();

//遍历输出TestArr集合:

while(TestIt.hasNext()){

     System.out.println(TestIt.next());

}

 

hasNext()方法:用来判断集合中是否有下一个元素可以迭代,如果返回true,说明可以迭代!

Next()方法:用来返回迭代的下一个元素,并把指针向后移动一位!

 

//迭代集合元素图解:

//在进行集合元素取出时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生java.util.NoSuchElementException没有集合元素的错误!

 

集合中存储其实都是对象的地址!

//如果集合中存放的是多个对象,这时进行向下转型会发生类型转换异常!

 

//Iterator也可以使用<>来控制元素的类型(引用类型和泛型通配符)!

 

增强For循环:

用于遍历Collection和数组,通常只进行遍历元素,不要在遍历的过程中对集合元素进行增删操作!

//只能用于遍历,不能用于增删改查!

 

注意:新for循环必须有被遍历的目标。目标只能是Collection/集合或者是数组!

建议:遍历数组时,如果仅为遍历,可以使用增强for如果要对数组的元素进行操作,使用老式for循环可以通过下标操作(增强For循环不能操作集合或者数组的下标)!

 

泛型:

泛型不进入.class文件!

 

限定泛型的上限:

格式:? extends E

 

限定泛型的下限:

格式:? super E

posted on 2018-08-01 16:24  Postgre叮当牛i  阅读(136)  评论(0编辑  收藏  举报

导航