zoukankan      html  css  js  c++  java
  • 集合(List)

    *java.util.ArrayList:实现List接口,采用线性结构进行存储,可变长度的数组.
    java.util.Vector:实现List接口,采用线性结构进行存储
    * ArrayList和Vector的区别:
    * ArrayList:非线程安全的,效率较高
    * Vector:线程安全,效率较低,如果在多线程程序中推荐使用Vector
    *不唯一,有序
    *使用场景:遍历或随机访问时效率较高,添加和删除元素需要大量移动位置,效率较低
    *常见操作:
    *添加:
    *add(E e):将指定的元素添加到此列表的尾部。
    *add(int index, E element):将指定的元素插入此列表中的指定位置。
    *查询:
    *get(int index):返回此列表中指定位置上的元素。
    *删除:
    *remove(int index):移除此列表中指定位置上的元素。
    *修改:
    *set(int index, E element):用指定的元素替代此列表中指定位置上的元素。
    *其他:
    *size():返回此列表中的元素数。
    *isEmpty():如果此列表中没有元素,则返回 true
    List list = new ArrayList();//向上转型


    * -------Collection接口-------
    *--List接口:可重复,有序
    *----ArrayList类
    *--Set接口 :不可重复,无序
    *
    *java.util.Iterator:对 collection 进行迭代的迭代器
    *hasNext(): 如果仍有元素可以迭代,则返回 true。
    *next() : 返回迭代的下一个元素
    *
    *Collection常用方法:
    *addAll(Collection<? extends E> c):将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。
    *iterator():返回在此 collection 的元素上进行迭代的迭代器。
    *clear():移除此 collection 中的所有元素(可选操作)。
    *contains(Object o):如果此 collection 包含指定的元素,则返回 true。


    泛型:
    * 语法:List<E> list = new ArrayList<E>();
    * 优点:
    * 避免获取元素时强制转型
    * 消除黄色警告.
    * 将用户输入的5个整数转换成2进制输出


    * List接口继承了Collection接口
    * LinkedList类:实现了List接口,采用的链表结构进行存储。
    * 使用场景:
    * 添加删除元素时效率较高,遍历和随机访问时效率较低
    * 特有方法:
    * addFirst(E e) 将指定元素插入此列表的开头。
    addLast(E e) 将指定元素添加到此列表的结尾。
    removeFirst() 移除并返回此列表的第一个元素。
    removeLast() 移除并返回此列表的最后一个元素。
    getFirst() 返回此列表的第一个元素。
    getLast() 返回此列表的最后一个元素。
    public class TestLinkedList {
    public static void main(String[] args) {
    // List<String> list = new LinkedList<String>();//向上转型
    LinkedList<String> list = new LinkedList<String>();
    list.add("java");
    list.add("oracle");
    list.add("html");
    list.addFirst("C");
    list.addLast("jsp");
    list.add("mysql");
    list.add("struts2");
    list.removeFirst();
    list.removeLast();
    for (String string : list) {
    System.out.println(string);
    }
    System.out.println("*************");
    System.out.println("第一个元素:"+list.getFirst());
    System.out.println("最后一个元素:"+list.getLast());
    }
    }

    * List接口:
    * --ArrayList
    * --LinkedList
    * --Vector
    * ----Stack
    * java.util.Stack类:继承Vector类
    * push(E item):把项压入堆栈顶部。
    * pop() 移除堆栈顶部的对象,并作为此函数的值返回该对象。
    *
    *栈:一种特殊存储结构,满足后进先出的特性,类似于生活中"弹夹"(第一个压进去的最一个弹出)
    *先进后出(First In Last Out)-->FILO
    * 后进先出(Last In Frist Out)-->LIFO *
    *操作:
    * 压栈:push
    * 出栈(弹栈):pop
    */
    public class MyStack {
    LinkedList list = new LinkedList();
    /**
    * 压栈的操作
    */
    public void push(Object obj){
    // list.addLast(obj);
    list.addFirst(obj);
    }

    /**
    * 出栈的操作
    * @return:返回并移除栈顶的元素
    */
    public Object pop(){
    // Object obj= = list.removeLast();
    Object obj =list.removeFirst();
    return obj;
    }

    public static void main(String[] args) {
    // Stack<String> stack = new Stack<String>();
    // stack.push("java");
    // stack.push("oracle");
    // stack.push("html");
    // for (int i = 0; i < 3; i++) {
    // String el=stack.pop();
    // System.out.println(el);
    // }
    MyStack stack = new MyStack();
    stack.push("java");
    stack.push("oracle");
    stack.push("html");
    for (int i = 0; i < 3; i++) {
    Object obj=stack.pop();
    System.out.println(obj);
    }
    }
    }

  • 相关阅读:
    Android Studio 通过 git update 或者 pull 的时候出错及解决办法
    powershell2
    @SuppressWarnings注解用法
    IDEA设置虚拟机参数
    Java爬虫https网页内容报错SSLHandshakeException信任(忽略)所有SSL证书
    Quartz时间配置(周期任务)
    java 字符串转成 json 数组并且遍历
    linux 不能进入系统 Failed to load SELinux policy. Freezing
    linux安装mysql后报错启动不了Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
    警告:MySQL-server-5.6.26-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
  • 原文地址:https://www.cnblogs.com/seePoppy/p/6745288.html
Copyright © 2011-2022 走看看