zoukankan      html  css  js  c++  java
  • 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]
        }
    }
    

      

  • 相关阅读:
    android debug:stack trace
    android binder IPC 通信中 asInterface 与 asBinder
    ubuntu WPS 对话框 使用GTK主题的方法
    init.rc
    make_ext4fs 文件权限控制
    百度地图api,点击标注,改变标注marker图标的链接地址
    dispatchEvent 自定义触发事件,常用于自定义鼠标事件或点击事件
    vue 中监听窗口发生变化,触发监听事件, window.onresize && window.addEventListener('resize',fn) ,window.onresize无效的处理方式
    chomre 控制台断点调试
    css,scss解决样式:表格的重叠边框
  • 原文地址:https://www.cnblogs.com/gygtech/p/13511271.html
Copyright © 2011-2022 走看看