欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Collection集合的常用知识点总结01

程序员文章站 2022-04-11 17:47:12
...

Collection接口中,定义的是所有单列集合*性的方法,所有的单列集合都可以使用的共性方法(不带索引的方法)
Collection有两个常用子接口List和Set接口,而list接口中有三个常用的集合,分别是ArrayList集合,LinkedList集合,Vector集合(了解)。而Set接口中有三个常用的集合Hashset,LinkedHashSet集合,TreeSet集合(了解)。

先说Collection接口,其重写了toString方法,因此可以直接输出集合名称([元素内容])
有七个常用的方法:
1.public boolean add(E e)把给定元素添加到当前集合当中
2.public boolean remove(E e)把给定元素从集合中删除
3.public boolean contains(E e)判断当前集合中是否包含给定的元素
4.public boolean isEmpty()判断当前集合是否为空
5.public int size()返回集合中元素的个数
6.public Object[] toArray()把集合中的元素存储到数组中
7.public void clear()清空集合中所有的元素

之前我们都学过遍历集合有for循环和for增强的方法(for增强就是一种迭代器),我们这里在将下面内容之前补充一下迭代器的相关知识

在集合中,我们还可以通过迭代器来遍历集合中的元素
Iterator接口就是我们所说的迭代器
其接口中有两个常用的方法

  1. boolean hasNext()判断是否仍有元素可以迭代
  2. E next()返回迭代出来的元素

因为Iterator为一个接口,我们无法直接使用,必须通过它的实现类,而集合中有一个叫interator的方法可以直接创建迭代器的实现类。因此我们的步骤就是:
1.先通过Collection集合中的方法创建Iterator的实现类
2.然后调用实现类中的hasNext()和next()方法配合while循环或者for循环(少用),来遍历我们的集合

那么迭代器的实现原理是什么勒?
Collection集合的常用知识点总结01
在获取到我们的迭代器实现类后,会把索引(指针)指向集合的-1索引。hasNext()判断下一个索引处还有没有元素。
next()会做两件事:1.取出下一个元素。2.每取一个元素就会把指针往后移动一位。

然后,我们还补充一下泛型的知识。泛型就是一种未知的数据类型,当我们不知道用什么数据类型的时候,就可以采用泛型。例如我们最开始创建ArrayList集合的时候,是不是会出现一个,这就是我们的泛型。
泛型一般有以下四个方面的应用
1.定义含有泛型的类

public class Demo01<E> {
	private E message;

	public E getMessage() {
		return message;
	}
	public void setMessage(E message) {
		this.message = message;
	}
}

这样在测试类创建该类的对象的时候,给定该类一个数据类型,然后就可以在message里面放入指定的数据类型

2.定义含有泛型的方法

public class Demo01 {
	public <M> void method(M message){
		System.out.println(message);
	}
}

这样你在调用这个方法的时候,传入什么数据类型,message里面就会放入什么数据类型

3.定义含有泛型的接口

public interface Interface01<E>{
	E method(E e);
}

3.1在接口的实现类中把接口的泛型定下来

public class Interface01Impl implements Interface01<String>{
	public void method(String s){
		System.ou.println(s);
	}
}

3.2在测试类中把实现类的泛型定下来,实现类同样采取泛型的表现形式

public class Interface01Impl<E> implements Interface01<E>{
	public void method(E s){
		System.ou.println(s);
	}
}

//测试类

public class Demo01{
 	Interface01Impl<Integer> iImpl=new   Interface01Impl<>();
	 iImpl.method(10);//10
}

4.泛型通配符<?>
泛型通配符代表任意的数据类型
只能作为方法的参数引用,不能创建对象时使用(比如创建一个ArrayList时,不能把它的参数类型写成泛型通配符)

public class Demo01 {
	public static void main(String[] args) {
		ArrayList<Integer> aList01=new ArrayList<>();
		aList01.add(1);
		printArray(aList01);//[1]
	
		ArrayList<Double> aList02=new ArrayList<>();
		aList02.add(1.5);
		printArray(aList02);//[1.5]
	}

	public static void printArray(ArrayList<?> list){
		System.out.println(list);
	}
}
相关标签: Java学习