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) 编辑 收藏 举报