Day02笔记

Day02笔记

大纲

一、Collection集合 -------------> 理解

二、迭代器 Iterator ------------> 重点

三、泛型 -----------------------> 理解

第一章 Collection集合

1、两种容器

A.数组(存放任意类型,长度固定)``````
B.集合(存放对象类型,长度可变)

2、体系结构

单列集合 Collection 
    List (ArrayList、LinkedList、Vector)
    Set (HashSet(无序)、LinkedHashSet(有序)、TreeSet)

3、常用方法

A.增
    public boolean add(E)   ```
B.删
    public void clear()清空元素,集合未删除
    public boolean remove(E)  
 C.改
    public Object[] toArray()```
    public T[] toArray(<T>)   
D.查 
    public int size() 
    public boolean isEmpty()

第二章 迭代器 Iterator

1、获取迭代器对象

Iterator iter = c.iterator(); //获取迭代器

2、使用迭代器方法(快捷键 itit 回车)

iter.hasNext(); //是否存在下一个元素
E e = iter.next(); //获取下一个元素

3、模板案例
Collection<String> c = new ArrayList<String>();//创建对象
	c.add("Hello");//添加数据
	c.add("world");
	c.add("good");
	Iterator<String> iter = c.iterator();//获取迭代器
while (iter.hasNext()) {
    String next =  iter.next();
    System.out.println(next);}//循环遍历迭代器 itit
4、增强for循环的使用(快捷键 集合名称.for)
---内部原理是迭代器	
Collection<String> c = new ArrayList<String>();//创建对象
c.add("Hello");
c.add("world");
c.add("good");//添加数据
for (String s : c) {
    System.out.println(s);
}//增强for
5、迭代器的并发修改异常
在使用迭代器的过程中,修改集合的长度(增添、删除元素)就会发生此并发(1.迭代;2.修改集合长度)异常ConcurrentModificationException
解决方法:1.在迭代的过程中,不对集合的长度进行修改。
		 2.了解:Iterator接口有一个子接口ListIterator接口(只有List接口下面的集合可以使用)
		 ListIterator接口中定义了add方法和remove方法,可以对集合添加/删除元素
		 如果使用ListIterator接口中的add/remove方法对集合添加/删除元素,那么迭代器自己添加/删除的,就			不会抛出异常了

第三章 泛型

1、泛型的好处
A.提前检查(运行时可能出现的类型转换异常,提前到编译时是否通过)
B.简洁代码(不需要手动向下转型,快捷键直接提示出来类型)
2、泛型应用场景
A.泛型类
    a.定义格式: 修饰符 class 类名称<泛型>{ }   //定义未知不具体类型
    b.使用格式:(创建对象)。类名称<具体类型> 对象名称 = new 类名称<具体类型>(); //使用已知具体类型                
B.泛型方法
    a.定义格式:  
    修饰符 <泛型> 返回值  方法名称 (参数){ 方法体; return 返回值; }  //定义未知不具体类型
    
    b.使用格式:(调用方法)
    具体返回值类型  返回值 = 方法名称(具体参数);  //使用已知具体类型      
C.泛型接口
    a.定义格式: 
            修饰符 interface 接口名称<泛型>{ }    

    b.使用格式:(实现类或者创建实现类对象时候)
            第一种:修饰符 class 类名称 implements 接口名称<具体类型>{ }   //使用已知具体类型
            第二种:类名称<具体类型> 对象名称 = new 类名称<具体类型>(); //使用已知具体类型  
D.泛型通配符
    a.含义: 
            不知道使用什么数据类型的时候,泛型可以使用 ? 

    b.格式:
            Collection<?>  可以传递各种泛型类型的对象
            例如: 这些都可以传递 Collection<Object> Collection<String> Collection<Integer> 

    c.高级使用: (Number是Integer的父类)
            Collection<? extends Number> 只能接收 Number类型以及子类类型. (专业术语"泛型的上限")
            Collection<? super Number> 只能接收 Number类型以及父类类型. (专业术语"泛型的下限")

今日正能量:

​ 唯有拥抱自己的缺点 你才能够全然接受跟喜欢自己。

                                    				 ------Pets_zeng	

1

猜你喜欢

转载自blog.csdn.net/weixin_43915156/article/details/84828877