集合框架1

集合框架/后续补全

简介

集合框架:用于存储数据的容器。

集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。
任何集合框架都包含三大块内容:对外的接口接口的实现和对集合运算的算法

Collection接口

  • 集合框架的顶级接口
  • 是Set和List的父接口
  • 但不是Map的父接口

所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出:CollectionMapCollectionMapJava集合框架的根接口,这两个接口又包含了一些子接口或实现类。


Collection关系继承图:

在这里插入图片描述
Collection集合主要有List和Set两大接口

  • List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。

  • Set:无序(存入和取出顺序有可能不一致),不可以存储重复元素。必须保证元素唯一性

List接口

集合和数组的区别

  • 数组是固定长度的;集合可变长度的。

  • 数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型。

  • 数组存储的元素必须是同一个数据类型;集合存储的对象可以是不同数据类型。

数据结构:就是容器中存储数据的方式。

asArrayListLinkedListVector
底层实现数组双向链表数组
同步性及效率不同步,非线程安全,效率高,支持随机访问不同步,非线程安全,效率高同步,线程安全,效率低
特点查询快,增删慢查询慢,增删快查询快,增删慢
默认容量10/10
扩容机制int newCapacity = oldCapacity + (oldCapacity >> 1);//1.5 倍/2 倍

简单常用的遍历方式(附带小案例:子弹夹)
public class Dome {
	static LinkedList lk = new LinkedList<>();

	public static void main(String[] args) {
		 List myl = new ArrayList<>();
		 myl.add("1");
		 myl.add("2");
		 myl.add("3");
		 myl.add("4");
		 myl.add("5");
		 myl.add("6");
		 myl.add("7");
		 myl.add("8");
		 myl.add("3");

		/**
		 * 集合取值方式:第一种foreach循环取值
		 */
//		 for (Object o : myl) {
//		 System.out.println("foreach循环取值"+o);
//		 }

		/**
		 * 集合取值方式:第二种for循环取值
		 */
//		 for (int i = 0; i < myl.size(); i++) {
//		 System.out.println("for循环方式取值"+myl.get(i));
//		 }

		/**
		 * 集合取值方式:第三种iterator方式取值
		 */
//		 Iterator myi = myl.iterator();
//		 while(myi.hasNext()) {
//		 Object next = myi.next();
//		 System.out.println("iterator方式取值:"+next);
//		 }

		
		// 实例
		Dome dome = new Dome();
		dome.push("1");
		dome.push("2");
		dome.push("3");
		dome.push("4");
		dome.push("5");
		dome.push("a");
		dome.push("b");
		dome.push("c");
		dome.push("d");
		dome.push("A");
		dome.push("B");
		dome.push("C");
		// dome.pup();
		for (Object o : lk) {
			System.out.println(o);
		}
		
		
	}

	/**
	 * 用来装的子弹夹
	 * 
	 * @param o
	 *            子弹
	 */
	public void push(Object o) {
		lk.addFirst(o);
	}

	/**
	 * 打出第一发的子弹(也就是删除最后一个插入进来的)
	 */
	public void pup() {
		lk.removeFirst();
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值