java学习笔记——Collection集合接口

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(不允许重复)

  1.  允许重复的子接口: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);
        }
    }
    View Code

     注意上面的代码可以使用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);
        }
    }
    View Code
   旧的子类Vector,开发并不常用。
  2.  不允许重复的子接口:Set(只继承了Collection的方法,没有进行扩充)
     Set中常使用的两个子类:HashSet  TreeSet
  •   散列存放的子类:HashSet(90%)(散列即无序)
  •   TreeSet 会对用户加入的数据进行排序
  •   如果用户自定义的类想要使用TreeSet进行顺序保存,必须在该类中实现java.lang.Comparable接口以区分大小。(待续)
 
原文地址:https://www.cnblogs.com/lukexwang/p/4592494.html