再多学一点吧

导航

集合Collection ----List集合

Collection集合体系的特点:

  set系列集合:添加的元素是 无序,不重复,无索引的

  ----HashSet: 无序,不重复,无索引

  ----LinkedHashSet: 有序,不重复,无索引

  List系列集合:添加的元素是 有序,可重复,有索引的

  ----LinkedList: 有序,可重复,有索引的

  ----ArrayList : 有序,可重复,有索引

     ----Vector:

 

Arraylist:存储是数组结构,元素增删慢,查找快,线程不安全,效率高

- `public void add(int index, E element)`: 将指定的元素,添加到该集合中的指定位置上。 (在索引前面插入)
- `public E get(int index)`:返回集合中指定位置的元素。
- `public E remove(int index)`: 移除列表中指定位置的元素, 返回的是被移除的元素。
- `public E set(int index, E element)`:用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

import java.util.ArrayList;
import java.util.List;

public class ListDemo1 {
    public static void main(String[] args) {
        List<String> lists=new ArrayList<>();//Arraylist几乎没有增加功能,所以用多态
        lists.add("sfdsfd");
        lists.add("zyl" );
        lists.add("yuyu");
        lists.add("huwof");
        System.out.println(lists);//        [sfdsfd, zyl, yuyu, huwof]
        lists.add(1,"yyyy");
        System.out.println(lists);//        [sfdsfd, yyyy, zyl, yuyu, huwof]
        System.out.println(lists.get(2));//    zyl
        System.out.println(lists.remove(3));//  yuyu
        System.out.println(lists);//   [sfdsfd, yyyy, zyl, huwof]
        lists.set(0,"ppppp");
        System.out.println(lists);//   [ppppp, yyyy, zyl, huwof]


    }
}

LinkedList:存储的结构是链表结构(双向链表),方便元素添加、删除,线程不安全,效率高

- `public void addFirst(E e)`:将指定元素插入此列表的开头。
- `public void addLast(E e)`:将指定元素添加到此列表的结尾。
- `public E getFirst()`:返回此列表的第一个元素。
- `public E getLast()`:返回此列表的最后一个元素。
- `public E removeFirst()`:移除并返回此列表的第一个元素。
- `public E removeLast()`:移除并返回此列表的最后一个元素。
- `public E pop()`:从此列表所表示的堆栈处弹出一个元素。
- `public void push(E e)`:将元素推入此列表所表示的堆栈。
- `public boolean isEmpty()`:如果列表不包含元素,则返回true。

import java.util.LinkedList;

public class LinkedListDemo1 {
    public static void main(String[] args) {
        LinkedList<String> stack = new LinkedList<>();
        stack.addFirst("aaaa");
        stack.addFirst("bbbb");
        stack.addFirst("cccc");
        System.out.println(stack); //[cccc, bbbb, aaaa]
        stack.add("dddd");
        System.out.println(stack);  //[cccc, bbbb, aaaa, dddd]
        System.out.println(stack.remove("bbbb")); //true
        System.out.println(stack.getFirst()); //cccc

        LinkedList<String> stack1 = new LinkedList<>();
        stack1.push("111");  //stack.push() --> stack.getFirst()
        stack1.push("222");
        stack1.push("333");
        System.out.println(stack1); // [333, 222, 111]
        System.out.println(stack1.pop()); //333     stack.pop() -->stack.removeFirst()
        System.out.println(stack1); // [222, 111]

    }
}

 Vector:底层是数组,查询快,增添慢,线程安全,效率低

Vector的特有功能:
        1、添加功能:
            void addElement(Object obj) 将指定的组件添加到此向量的末尾,将其大小增加1。
        2、获取功能:
            Object elementAt(int index) 返回指定索引处的元素  --get()
            Enumeration elements() 返回此向量的组件的容器。--list.iterator()
                boolean hasMoreElements() 测试此容器是否包含更多元素。 --hasNext()
                E nextElement() 如果此容器对象至少有一个要提供的元素,则返回此容器的下一个元素。 --next()

import java.util.Enumeration;
import java.util.Vector;

public class VectorDemo1 {
    public static void main(String[] args) {
        Vector v=new Vector();
        v.addElement(1111);
        v.addElement(2222);
        v.addElement(3333);
        System.out.println(v);  // [1111, 2222, 3333]
        System.out.println(v.elementAt(1)); // 2222

        Enumeration e = v.elements();
        while (e.hasMoreElements()){
            System.out.println(e.nextElement());    //1111
                                                    //2222
                                                    //3333
        }
    }
}

 


                

 

posted on 2021-08-08 19:39  糟糟张  阅读(58)  评论(0编辑  收藏  举报