java 之 Collection类

Collection类

List:
    可以放入重复元素
    支持随机访问(有下标)
    可以插入元素【在指定下标插入】add(index, e)

Set:
    不可以放入重复元素
    不支持随机访问(无下标)
    不能插入元素

Queue:
    可以放入重复元素
    不支持随机访问(无下标)
    不能插入元素

  

list类

package com.gongxy.demo.collectionstudy;

import java.util.ArrayList;
import java.util.LinkedList;

/**
 * Collection
 * 一些基本方法:
 * 1、add(e) 添加元素
 * 2、clear() 清空所有元素
 * 3、size() 获取元素长度
 * 4、isEmpty() 是否无元素
 * 5、toArray(T[]) 转换为指定类型数组
 * 6、toArray() 转换为Object数组
 * 7、remove(o) 删除指定元素
 * 8、contains(o) 是否包含元素
 * - List 类
 * ArrayList 与 LinkedList 的区别
 * ArrayList
 *  1、默认长度是10
 *  2、使用数组实现(对数据查询较多时使用,修改删除较慢)
 * LinkedList
 *  1、使用链表实现(对数据修改频繁时使用,随机访问较慢)
 *  2、可用于存放不确定个数的元素
 */
public class ListTest {
    public static void main(String[] args) {
        linkedListTest();
    }

    /**
     * ArrayList类
     * extends Collection
     * 常用方法
     * 1、add(index, e) 指定下标添加元素
     * 2、get(index) 获取指定下标元素
     * 3、indexOf(obj) 获取指定元素在List中的位置,有则返回对应的下标,无则返回-1
     * 4、set(index, e) 覆盖指定下标元素
     * 5、remove(index) 删除下标元素
     */
    static void arrayListTest(){
        ArrayList<String> list = null;
        //System.out.println(list.size());//java.lang.NullPointerException
        //System.out.println(list.isEmpty());//java.lang.NullPointerException
        if (list == null) {
            System.out.println("为null时,size()和isEmpty()都会报异常");
        }
        list = new ArrayList<String>();
        System.out.println(list.size());//0
        System.out.println(list.isEmpty());//true
        list.add("gongYg");
        list.add("gongXY");
        list.add("gongXH");
        list.add("guMD");
        //list.clear();
        System.out.println(list.size());//4
        System.out.println(list);//[gongYg, gongXY, gongXH, guMD]
        System.out.println(list.get(0));//gonYG
        System.out.println(list.indexOf("gongXY"));//1
        list.set(0,"gongYY");
        System.out.println(list.get(0));//gongYY
        list.remove("gongYY");
        System.out.println(list);//[gongXY, gongXH, guMD]
        list.remove(0);
        System.out.println(list);
        System.out.println(list.contains("gongXH"));//是否包含元素,类似于=
        String[] sArray = new String[list.size()];
        list.toArray(sArray);
        for (String s: sArray
             ) {
            System.out.println(s);
        }
    }

    /**
     * LinkedList 与 ArrayList方法基本一样
     * extends Collection
     */
    static void linkedListTest(){
        LinkedList<String> list = null;
        //System.out.println(list.size());//java.lang.NullPointerException
        //System.out.println(list.isEmpty());//java.lang.NullPointerException
        if (list == null) {
            System.out.println("为null时,size()和isEmpty()都会报异常");
        }
        list = new LinkedList<String>();
        System.out.println(list.size());//0
        System.out.println(list.isEmpty());//true
        list.add("gongYg");
        list.add("gongXY");
        list.add("gongXH");
        list.add("guMD");
        //list.clear();
        System.out.println(list.size());//4
        System.out.println(list);//[gongYg, gongXY, gongXH, guMD]
        System.out.println(list.get(0));//gonYG
        System.out.println(list.indexOf("gongXY"));//1
        list.set(0,"gongYY");
        System.out.println(list.get(0));//gongYY
        list.remove("gongYY");
        System.out.println(list);//[gongXY, gongXH, guMD]
        list.remove(0);
        System.out.println(list);
        System.out.println(list.contains("gongXH"));//是否包含元素,类似于=
        String[] sArray = new String[list.size()];
        list.toArray(sArray);
        for (String s: sArray
        ) {
            System.out.println(s);
        }
    }
}

  

set类

package com.gongxy.demo.collectionstudy;

import java.util.HashSet;
import java.util.Set;

/**
 * Collection - Set 类
 */
public class SetTest {
    public static void main(String[] args) {
        hashSetTest();
    }

    static void hashSetTest(){
        Set<Integer> set = new HashSet<Integer>();
        set.add(1);
        set.add(2);
        set.add(2);
        System.out.println(set);//[1, 2]
        System.out.println(set.isEmpty());//false
        System.out.println(set.size());//2
        set.remove(2);
        System.out.println(set);//1
        System.out.println(set.contains(1));//true
    }
}

 

queue类

 

package com.gongxy.demo.collectionstudy;

import java.util.LinkedList;
import java.util.Queue;
import java.util.jar.JarOutputStream;

/**
 * Collection - Queue
 * 队列
 *
 */
public class QueueTest {
    public static void main(String[] args) {
        queueTest();
    }

    /**
     * add(e)/offer(e) //加入队列;两者区别是如果队列满了,一个异常,一个返回false
     * E element(0/peek() //查看队列的头;两者区别是如果队列为空,一个异常,一个返回false
     * E poll()/remove() //移除次队列的头;两者区别是如果队列为空,一个异常,一个返回false
     */
    static void queueTest(){
        Queue<String> queue = new LinkedList<String>();
        queue.offer("A");
        queue.offer("A");
        queue.offer("B");
        queue.offer("C");
        System.out.println(queue);//[A, A, B, C]
        String first = queue.peek();
        System.out.println(first);//A
        System.out.println(queue);//[A, A, B, C]
        String firstD = queue.poll();
        System.out.println(firstD);//A
        System.out.println(queue);//[A, B, C]
    }
}

  

posted @ 2020-08-16 00:59  gygtech  Views(251)  Comments(0Edit  收藏  举报