• 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接口以区分大小。(待续)
     
  • 相关阅读:
    7.31 "简单"(大嘘)DP
    P2014 选课
    7.30 "简单"(大嘘)DP
    Codeforce 1131C Birthday (构造数组)
    洛谷 P1074【靶形数独】(DFS)
    NOIP2004【虫食算】(DFS)
    洛谷 P1025【数的划分】(DFS dp)
    洛谷P1019【单词接龙】(DFS)
    洛谷P1162【机器人搬重物】(BFS)
    洛谷P1141【01迷宫】
  • 原文地址:https://www.cnblogs.com/lukexwang/p/4592494.html
Copyright © 2020-2023  润新知