集合框架入门

1. Collection接口
  1.1 集合框架的顶级接口
  1.2 是Set和List的父接口
  1.3 但不是Map的父接口
  
  集合中只能添加引用类型数据

2. List接口
  2.1 特点:有序、对象可以重复 
  2.2 遍历方式 
    2.2.1 下标
    2.2.2 foreach(>=jdk1.5)
    2.2.3 迭代器Iterator(原理)
  2.3 List优化
      初始容量10,负载因子1.5

      指定初始容量
  2.4 List元素删除

List特点:不唯一;有序。
		 * 1)不唯一:可以重复添加元素
		 * 2)有序:添加元素的顺序与输出的顺序一致
		 */
		List lst=new ArrayList();
		lst.add("zs");
		lst.add("ls");
		lst.add("ww");
		lst.add("zl");
		lst.add("zs");
		//jdk1.8新特性输出
//		lst.forEach(System.out::println);
		/*
		 * 4、List遍历集合的方式(3种)
		 * 1)for下标
		 */
//		System.out.println("-------1)for下标-----------");
//		for (int i = 0; i < lst.size(); i++) {
//			System.out.println(lst.get(i));
//		}
//		//2)foreach
//		System.out.println("-----2)foreach-----");
//		for (Object obj : lst) {
//			System.out.println(obj);
//		}
//		//3)Iterator迭代器
//		System.out.println("-------------3)Iterator迭代器------------");
//		//获取迭代器
//		Iterator it=lst.iterator();
//		//hasNext():判断下一个元素是否存在,不移动下标
//		//next() :移动下标并取出当前元素,再次调用hasNext方法判断下一个元素是否存在
//		//循环遍历
//		while(it.hasNext()) {
//			System.out.println(it.next());
//		}
		/*
		 * 5、List删除方式(3种+1)
		 * 1)for正向删除
		 * 2)for逆向删除
		 * 3)iterator迭代器
		 * clear清空
		 */
		System.out.println("删除之前的List集合大小:"+lst.size());
		/*
		 * 正向删除
		//第一次删除:i=0;lst.remove(0) a
		//第二次删除:i=1;lst.remove(1) c
		//第三次删除:i=2;2<2
		int len=lst.size();
		for (int i = 0; i <len; i++) {
			lst.remove(0);
		}
		 */
		/*逆向删除
		 int len=lst.size()-1;//五个元素最大下标四
		for (int i = len; i >=0; i--) {
			lst.remove(i);
		}
		 */
		//获取迭代器
		/*
		ListIterator it=lst.listIterator();
		while(it.hasNext()) {
			//先移动下标,再删除元素
			it.next();
			it.remove();
		}
		*/
		System.out.println("删除之后的List集合大小:"+lst.size());
	}

3. 泛型
   JDK1.5之后
   以类型作为参数的类就叫泛型
   作用:提高程序健壮性,简化代码
   泛型的默认值是Object

/**
		 * 泛型:以类型作为参数的类叫做泛型
		 * 作用:提高程序的健壮性,简化代码
		 * 泛型的默认数据类型是Object
		 * jdk1.5之后
		 */
		/*
		List lst=new ArrayList<>();
		lst.add(1);
		lst.add(2);
		lst.add(3);
		lst.add(4);
		lst.add(6);
		//获取迭代器
//		Iterator it=lst.iterator();
		//循环遍历
		ListIterator<Integer> it =lst.listIterator();
		while(it.hasNext()) {
			//获取元素
//			Object val=it.next();
			//类型转换
//			int num=Integer.parseInt(val.toString());
			int num=it.next();
			//获取偶数
//			if(num%2==0)
			System.out.println(num);
			
		}

4. 装箱、拆箱
   值类型->引用类型 装箱
   引用类型->值类型 拆箱
   jdk1.5之后引入了自动装箱及自动拆箱功能

*/
		/**
		 * 装箱,拆箱
		 * 装箱:值类型->引用类型
		 * 拆箱:引用类型->值类型
		 * 八大类型的包装类都属于引用类型
		 */
		//装箱
		int a=1;//值类型
		Integer a1=new Integer(a);
		//拆箱
		Float f=new Float(1.5f);
		float folat=f.floatValue();

5. ArrayList、LinkedList、Vector区别
   ArrayList:以连续的数组结构存储数据,查询快(下标)、增删改慢
   LinkedList:以链表的结构存储数据,查询慢、增删改快
   Vector:增删改查都慢,已过时

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值