初识集合结构体系

初识集合结构体系

A.集合分为单列集合和多列集合

*单列集合(Collection)
List集合:Vector、ArrayList、LinkedList...
Set 集合:HashSet、LinkedHashSet、TreeSet....
*双列集合(Map:)
Map 集合:HaspMap、Hashtable、TreeMap、LinkedHashMap、Properties...

B.图片详解

在这里插入图片描述

在这里插入图片描述

C.集合与数组

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

迭代器 Iterator

1、获取迭代器对象
Iterator<E> iter = c.iterator(); //获取迭代器 (不能更改集合的结果,即不能增加、删除数据)
ListIterator<E> listIter = ((ArrayList<E>) c).listIterator(); //获取迭代器 (可以实现增加、删除数据)
2、使用迭代器方法
iter.hasNext(); //是否存在下一个元素
E  e = iter.next(); //获取下一个元素
3、模板案例(快捷键 itit 回车)
//创建对象
	Collection<String> c = new ArrayList<String>();
//添加数据
	c.add("迪丽热巴");
	c.add("古力娜扎");
	c.add("蒙娜丽莎");
//获取迭代器    方式一 (不能并发修改)                          
	Iterator<String> iter = c.iterator(); 
//循环遍历迭代器 itit
	while (iter.hasNext()) {
	    String next =  iter.next();
	    System.out.println(next);
	}   
	
//获取迭代器    方式二 (可并发修改)                         
	Iterator<String> listIter = ((ArrayList<String>) c).listIterator(); 
//循环遍历迭代器 itit
	while (listIter.hasNext()) {
	    String next =  listIter.next();
	    if(next.equals("蒙娜丽莎")){
	        listIter.remove();//删除
	        ((ListIterator<String>) listIter).add("玛尔扎哈");//增加
	    }
	}   
//输出结果检验是否删除、增加成功
	 System.out.println(c.toString());

4、迭代器的注意事项
针对:iterator()、for each这两种方法
不能在遍历集合的过程当中进行修改的操作,否则会出现并发修改异常
并发修改异常: ConcurrentModificationException

泛型

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类型以及父类类型. (专业术语"泛型的下限"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值