集合框架的概述

1、集合的出现

java是一门面向对象的语言,需要对对象进行操作,那么对象就需要容器存储,为了满足比那花的需求就出现了集合

2、特点
  • 长度可变
  • 其存储内容只能是引用类型
  • 存储内容不限制同一种数据类型,可以同时存储多种引用类型
3、继承体系结构

为了满足变化的需求,java提供了不同的集合类,这些集合类的数据结构都不尽相同。但是都需要提供存储和遍历的功能,不断地向上公共功能就形成了它地体系图。
在这里插入图片描述

4、集合类中的功能

集合体系中所有地类和接口都直接或间接继承了Collection,所以Collection有的功能,其实现类都有

  • List子类
1>ArratList:
		A: 功能:没有特有功能,相当于List实现类
		B: 特点:
			底层数据结构是数组,查询快、增删慢
			线程不安全,效率高
2>Vector:
		A:有特有功能
			a: 添加
				public void addFirst(E obj)	--add(已经可以被这个方法替代)
			b: 获取
				public E elementAt(int index)		--get替代
				public Enumeration<E> elements()	--iterator替代
		B:特点:
			底层是数组,查询快、增删慢
			线程安全,效率低
3>LinkedList:
		A:有特有功能
			a:添加
				addFirtst()
				addLast()
			b:删除
				removeFirst()
				removeLast()
			c:获取
				getFirst()
				getLast()
		B:底层是链表,查询慢、增删快
		线程不安全,效率高

2、获取功能迭代器的详述
A: 是集合的获取元素的方式
B:是依赖于集合而存在的
C:迭代器的原理和源码

public interface Inteator{
	 boolean hasNext();
	 Object next();
}

Iterator it = c.iterator(); //调用iterator方法的时候,运行返回的是new Itr

相关类和接口

public interface interable{
	Iterator iterator();//这里这个返回值类型本来就是一个迭代器,这个迭代器的具体实现在ArrayList类中
}
public interface Collection extends Iterable {
	Iterator iterator();//继承自父类的
}

public interface List extends Collection {
	Iterator iterator();//继承自父类的
}

public interface ArrayList implements List{
	public Iterator iterator() {
		return new Itr();//Itr是接口的实现类,因为返回类型是接口,而里面能new对象的肯定是实现类
	}
	//内部类中实现了Iterable中的抽象方法
	private class Itr implements Iterator(){
		public boolean hasNext(){
		}
		public Object next(){
		}
	}
}

注意:可以看到迭代器同样定义为接口,而不是一个详细地实现类。
A: java中提供了很多的集合类,而这些集合类的数据结构是不同的,所以,存储的方式和遍历的方式
应该是不同的。进而遍历方式也应该是不同的,如果定于成一个具体地类显然是不合理地。
B:而无论那种集合,都应该具备获取元素的操作,并且,最好在辅助于判断功能,这样,在获取前,先判断,这样就更不容易出错。也就是说,判断功能和获取功能应该是一个集合遍历的所具备的,而每种集合的方式又不太一样,所以我们把这两个功能提取出来,并不提供具体的实现,这种方式就是接口。那么真正的实现类在真正的具体的子类中。

发布了52 篇原创文章 · 获赞 6 · 访问量 1451

猜你喜欢

转载自blog.csdn.net/qq_40488936/article/details/103639585