• Java 基础


    Collection的笔记:

    /**存储对象考虑使用:
     * 1.数组, ①一旦创建,其长度不可变!② 长度难于应对实际情况
     * 2.Java集合, ①Collection集合: 1.set: 元素无序,不可重复; 2.元素有序,可重复的集合--动态不定长数组
     *             ②Map集合, 具有映射关系的"key - value"对的集合
     * ---------------------------------
     * 1.Collection接口 常用及操作
     *      ①size(),clear()②isEmpty(),③contains(),④add()方法 和remove()方法, ⑤ iterator 来返回迭代器对象
     *      ⑥addall() 和removeall() ,添加或者删除全部! ⑦Object[] toArray() ,将集合转换为Object数组
     * 2.Collection 的遍历方法:
     *         ① 转换成Object[]类进行输出,不常用 ; for(int i=0;i<s.length;i++)
     *         ②使用迭代器进行遍历集合:1.声明 Iterator it=  col2.iterator();2.hasNext();3.返回迭代中的下一个元素:it.next()
     *         ③使用增强的for循环语句: for(Object o: collection) sout(o);   //Object表示确定的类型
     */

    Collection的测试代码:

    public class TestCollection {
        public static void main(String[] args) {
            ArrayList col = new ArrayList();
            ArrayList col2 = new ArrayList();
            col.add(123);
            col.add("QWQ");
            col.add(new Date());
            col2.addAll(col);
            Object[] s=col2.toArray();   //1.转换成Object[]类进行输出,不常用
            for(int i=0;i<s.length;i++)
                System.out.print("	("+s[i]+")");
            System.out.println("--------------");
            //2.使用迭代器进行遍历集合:1.声明 Iterator it=  col2.iterator();2.hasNext();3.返回迭代中的下一个元素:it.next()
            Iterator it=  col2.iterator();
            while(it.hasNext()){
                System.out.print("	"+it.next());
            }
            System.out.println("--------------");
            //3.使用增强的for循环语句: for(Object o: collection)sout(o);   //Object表示确定的类型
            for (Object o: col2)
                System.out.print("	"+o);
    
    
        }
    }
    View Code(已折叠)

    Collection的测试结果:

        (123)    (QWQ)    (Sun Oct 14 17:37:55 CST 2018)--------------
        123    QWQ    Sun Oct 14 17:37:55 CST 2018--------------
        123    QWQ    Sun Oct 14 17:37:55 CST 2018
    View Code

    ArrayList和LinkedList的笔记:

    /** ArrayList (本质:可变长数组 ):List 的主要实现类
     *      易错点: 不可以使用下标直接进行索引,需要get()!
     * List中相对于Collection<E> 新增加的方法
     *      0. 无参数(Object)类型声明构造: List list=new ArrayList();
     *          有参数(String/int...)类型声明构造: List<String> list2=new ArrayList<String>();
     *      1.E get(int index);//返回索引位置的值
     *      2.E set(int index,E element); //设置下标为index位置的值
     *      3.void add(int index,E element);  //增加值
     *      4.E remove(int int index)  //删除一个值
     *      5.int indexOf/lastIndexOf( o)  //正向或逆向查找一个元素值
     *      6.可以调用size()取长度,跑循环进行 get()遍历!
     *      -------------
     *      父类Collection接口 常用及操作
     *  *      ①size(),clear()②isEmpty(),③contains(),④add()方法 和remove()方法, ⑤ iterator 来返回迭代器对象
     *  *      ⑥addall() 和removeall() ,添加或者删除全部! ⑦Object[] toArray() ,将集合转换为Object数组
     *  -------------
     *  LinkedList是依靠链表实现的!优势: 常用来处理频繁的插入和删除操作;
     *  *      1.对于在头部插入和内部删除元素, LinkedList每次为常量时间; 而同样的, ArrayList是线性时间!
     *  *      1.对于定位访问,        LinkedList每次为线性时间; 而同样的, ArrayList是常量时间!
     *  ----------------
     *  * LinkedList的特有操作: (简直就是C++的STL库中的deque双端队列!)
     *        1.构造方法: LinkedList()/LinkedList(Collection c)
     *        2.添加头部或者在尾部: addFirst(E element)/addLast(E element)
     *        3.删除头部或者尾部: removeFirst()/removeLast()
     *  -------------
     *  * Vector(古老的实现类,线程安全, 基本弃用了, JDK 1.0)
     */

    ArrayList和LinkedList的测试代码:

    public class TestList {
        public static void main(String[] args){
            System.out.println("--------Test ArrayList--------");
            List list=new ArrayList();
            list.add(6666);
            list.add(0,"6666");
            list.add(0,"6667");list.add(0,"6667");
            list.set(0,"6666777");
            for(int i=0;i<list.size();i++)
                System.out.print("	"+list.get(i));
    
            System.out.println("
    ------Test ArrayList<String>----");
            ArrayList<String> list2=new ArrayList<String>();
            list2.add(0,"6666");
            list2.add(0,"6667");list2.add(0,"6667");
            list2.set(0,"6666777");
            for (String s:list2)
                System.out.print("	"+s);
    
            LinkedList<Integer> link1= new LinkedList<Integer>();
            link1.addFirst(666);
            link1.addLast(7777);
            link1.addLast(7777);
            link1.removeLast();
            LinkedList link2= new LinkedList(list2);   //拿ArrayList来构造了LinkedList
            System.out.print("
    link1: ");
            for (Integer i:link1)
                System.out.print("	"+i);
            System.out.print("
    link2: ");
            for (Object i:link2)
                System.out.print("	"+i);
        }
    }
    View Code

    ArrayList和LinkedList的测试结果:

    --------Test ArrayList--------
        6666777    6667    6666    6666
    ------Test ArrayList<String>----
        6666777    6667    6666
    link1:     666    7777
    link2:     6666777    6667    6666
    View Code
  • 相关阅读:
    查看CentOS版本方法
    Android中string.xml文件中设置部分字体颜色大小
    linux重启oracle 各种方法
    Duilib初级控件扩展一例: 具有鼠标滚动消息的OptionUI
    VirtualBox 安装XP虚拟机需要注意的问题
    如何让VS2012编写的程序在XP下运行
    VC 系统托盘编程,含有气泡提示
    获取文件或是文件夹的大小和占用空间
    VC++实现获取文件占用空间大小的两种方法(非文件大小)
    VC++ 获取文件属性创建时间、修改时间和访问时间
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/9787095.html
Copyright © 2020-2023  润新知