1、一些基本操作
int size();
返回大小boolean isEmpty();
判断是否为空boolean contains(Object o);
判断是否包含某一个对象Iterator<E> iterator();
迭代器,用于返回一个对容器进行顺序遍历的迭代器对象Object[] toArray();
把容器换成一个数组,注意:容器类虽然是封装好的,但是,在实际开发中,如果能用数组的话,如果数组足够满足要求的话,我们优先考虑数组,因为数组的效率是最高的。boolean add(E e);
添加元素,这里的E是泛型,相当于c++中的模板类,相当于提供了一个参数一样,换成Object,就放Object类型,换成Cat,就放Cat类型。boolean remove(Object o);
删除某一个元素,boolean containsAll(Collection<?> c);
看它是否包含另一个容器中的所有元素。boolean addAll(Collection<? extends E> c);
添加形参容器中的所有元素。boolean removeAll(Collection<?> c);
将后面容器中的所有元素都删除掉。void clear();
清空容器。boolean equals(Object o);
容器判断是否是equals。
1、到底怎么实现接口,是由子类根据实际情况来实现。比如:列表和集合对于添加这个方法来说就不一样,列表可以随意,但是set必须先判断是否有一样的,有一样的不能加,有不一样的才能加。
import java.util.*;
public class Main implements Collection
{
public static void main(String[] args)
{
Collection c=new ArrayList();
//前面已经讲过,Collection中有List,List中有个实现类,叫ArrayList();
//可以把一个实现接口类型的类对象赋值给一个接口类型的变量。
c.add("Java");
c.add(new Student(1,"Tom",60));
c.add(new Integer(12));
System.out.println(c.size());//这里结果是3,因为添加进去了3个元素;
System.out.println(c);
}
}
2、c类型定义为Collection类型是因为,假如想要用HashSet类型中的这些方法的话,需要改动的只有Collection c=new ArrayList();
这一行,别的代码不需要懂,因为是面向接口开发的,这些方法全是接口Collection中提供的方法,只要类实现Collection接口,换就可以。
4、ArrayList();
类名可以放到一个文本文件里面,可以是个变量,可以是个字符串,把字符串传进来,类名是ArrayList();这样它就可以帮你生成这个字符串对应的类,下面的代码都不需要动,只需要改一下文本文件就可以了。
5、如果c的类型是ArrayList()类型的话,也就是ArrayList c=new ArrayList();
当变成ArrayList c=new HashSet();
很有可能有些方法是ArrayList()提供的方法,而HashSet没有提供这个方法,这个时候就会出问题,代码修改比较大。
6、打印c实际上是调用c.toString();
也就是c所指对象ArrayList的c.toString();因为有三个元素,所以再分别调用这三个元素的toString方法,
打印c,实际上调用的是所指对象每一个元素的toString方法。