NO | 方法名称 | 描述 |
1 | public boolean add(E e) | 向集合中保存数据 |
2 | public void clear() | 清空集合 |
3 | public boolean contains(Object o) | 查询集合之中是否有指定对象 ,该方法需要equals()方法支持 |
4 | containsAll(Collection<?> c) | |
5 | boolean remove(Object o) | |
6 | boolean removeAll(Collection<?> c) | |
7 | boolean isEmpty() | |
8 | int size() | |
9 | Object[] toArray() | |
10 | Iterator<E> iterator() | 为iterator接口实例化 |
在以上所给方法中使用最多的是add() 和 iterator()两个方法。其他方法使用较少。
开发中大部分不会去直接使用Collection 而是使用Collection下的两个接口:List(允许重复) Set(不允许重复)
- 允许重复的子接口:List(80%只用他)
- List对Collection所作的扩充主要有:
NO | 方法名称 | 描述 |
1 | E get(int index) | 取得指定位置的对象 |
2 |
E set(int index,E element) |
|
3 | ListIterator<E> listIterator() | 为listIterator实例化 |
接口完成后一定要使用子类,而常用的两个子类是:ArrayList Vector
ArrayList使用(90%)
-
import java.util.ArrayList; import java.util.List; public class ArrayListDemo { public static void main(String[] args) { List<String> list=new ArrayList<String>(); list.add("hello"); list.add("hello"); list.add("world!"); System.out.println(list); } }
注意上面的代码可以使用get()方法循环输出。
以上代码使用的都是String类进行操作,下面使用自定义类进行操作(注意在自己定义的类中一定要重写equals()方法)。
-
import java.util.ArrayList; import java.util.List; import com.sun.org.apache.bcel.internal.generic.NEW; class Person{ private String name; private int age; public Person(String name,int age) { // TODO Auto-generated constructor stub this.name=name; this.age=age; } public String toString(){ return "姓名:"+name+",年龄:"+age+" "; } public boolean equals(Object obj){ if(obj==null) return false; if(!(obj instanceof Person)) return false; if(this==obj) return true; Person per=(Person)obj; if(this.name.equals(per.name)&&this.age==per.age) return true; return false; } } public class ArrayListDemo { public static void main(String[] args) { List<Person> list=new ArrayList<Person>(); list.add(new Person("张三", 20)); list.add(new Person("李四", 21)); list.add(new Person("王五", 23)); System.out.println(list.contains(new Person("王五", 23))); list.remove(new Person("李四", 21)); System.out.println(list); } }
旧的子类Vector,开发并不常用。
2. 不允许重复的子接口:Set(只继承了Collection的方法,没有进行扩充)
Set中常使用的两个子类:HashSet TreeSet
- 散列存放的子类:HashSet(90%)(散列即无序)
- TreeSet 会对用户加入的数据进行排序
- 如果用户自定义的类想要使用TreeSet进行顺序保存,必须在该类中实现java.lang.Comparable接口以区分大小。(待续)