集合框架(Collection)

目录

一、UML

二、Collection接口

三、List接口

四、泛型

五、装箱、拆箱(转换)

六、ArrayList、LinkedList、Vector区别

一:UML

统一建模语言

二:Collection接口

1.集合框架的顶级接口

2.是Set和List的父接口

3.但不是Map的父接口

4.集合中只能添加引用类型数据

三:List接口

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

      指定初始容量
  2.4 List元素删除
      iterator
package com.zking.dog;

import java.util.ArrayList;
import java.util.List;

public class Demo01 {

	public static void main(String[] args) {
		//list集合的特点:1 有序
		List list = new ArrayList();
		list.add("刘德华");
		list.add("张学友");
		list.add("黎明");
		list.add("郭富城");
		
		for (Object object : list) {
			System.out.println(object);
		}
		
		//list集合的特点:2 元素可以重复
		list.add("郭富城");
		System.out.println("------------------");
		for (Object object : list) {
			System.out.println(object);
		}
		
		list.add(1);
		//java八大基本数据类型:int byte float double short char boolean long
		//整型[byte short int long]
		//非整型[float double])和非数值[char boolean]
		//引用数据类型:	Integer Byte Float Double Short Character Boolean Long String 
		
	}

}

package com.zking.dog;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Set;

public class Demo02 {

	public static void main(String[] args) {
		List list = new ArrayList();
		list.add("刘德华");
		list.add("张学友");
		list.add("黎明");
		list.add("郭富城");
		
		//list集合的遍历方式 1.下标遍历   for循环
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}
		
		System.out.println("---------------");
		
		//list集合的遍历方式 2.foreach jdk1.5之后才有的
		for (Object object : list) {
			System.out.println(object);
		}
		
		System.out.println("---------------");
		//list集合的遍历方式 3.迭代器
		Iterator it = list.iterator();
//		it.hasNext();//返回值为布尔类型
//		it.next();//获取下一个元素,并移动迭代器位置
		while(it.hasNext()) {
			Object next = it.next();
			System.out.println(next);
		}
		
//		Set set = null;
		
		System.out.println("------------");
		
		ListIterator lit = list.listIterator();
		while(lit.hasNext()) {
			Object next = lit.next();
			System.out.println(next);
		}
		
		System.out.println("-------------");
		while(lit.hasPrevious()) {
			Object previous = lit.previous();
			System.out.println(previous);
		}
		
		
		
		
		
	}

}

package com.zking.dog;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Demo03 {

	public static void main(String[] args) {
		List list = new ArrayList();
		list.add("刘德华");
		list.add("张学友");
		list.add("黎明");
		list.add("郭富城");
		
		System.out.println(list.size());
//		//list集合的删除  顺序删除   有问题    不能全部删除
//		for (int i = 0; i < list.size(); i++) {
//			list.remove(i);
//		}
		
//		//list集合的删除  倒序删除
//		for (int i = list.size()-1; i>=0; i--) {
//			list.remove(i);
//		}
		
		//list集合的删除 迭代器
		Iterator it = list.iterator();
		while(it.hasNext()) {
			it.next();
			it.remove();
		}
		
		System.out.println(list.size());
					
	}

}

package com.zking.dog;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;


public class Demo04 {



	public static void main(String[] args) throws Exception{
		List list = new ArrayList(50);
		//list实现类ArrayList实际上就是Object数组
		 print(list);
		 for (int i = 1; i <=50; i++) {
			list.add(i);
			print(list);
		}
		
		//值类型转换成引用类型  装箱
		int i =1;
		Integer j=i;
		
		//引用类型转换成值类型  拆箱
		Integer k =1;
		i=k;
		k.intValue();
					
	}
	
	//静态方法    实例方法   静态方法属于类    实例方法属于对象
	public static void print(List list) throws Exception{
		//反射
		//1.获取类对象
		Class clazz = list.getClass();
		
		//2.获取属性对象
		Field field = clazz.getDeclaredField("elementData");
		
		//3.打开属性限制
		field.setAccessible(true);
		
		Object[] object =(Object[])field.get(list);
		System.out.println("数组的长度为:"+object.length);
	}
}

 

四、泛型

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

五、装箱、拆箱(转换)

值类型->引用类型 装箱

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

六、ArrayList、LinkedList、Vector区别

 ArrayList:以连续的数组结构存储数据,查询块(下标)、增删改慢
 LinkedList:以链表的结构存储数据,查询慢、增删改快
 Vector:增删改查都慢,已过时,同步.线程安全
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值