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 | 方法名称 | 描述 |
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+"\n";
}
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接口以区分大小。(待续)