zoukankan      html  css  js  c++  java
  • List-------Collection接口-------

    *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);
    }
    }
    }

    */

  • 相关阅读:
    macbook 无声音解决方案
    webapck dev server代理请求 json截断问题
    百度卫星地图开启
    服务器 nginx配置 防止其他域名绑定自己的服务器
    记一次nginx php配置的心路历程
    遇到npm报错read ECONNRESET怎么办
    运行svn tortoiseSvn cleanup 命令失败的解决办法
    svn add 命令 递归目录下所有文件
    m4出现Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
    Ubuntu下安装GCC,mpc、mpfr、gmp
  • 原文地址:https://www.cnblogs.com/wangkemeng/p/6745529.html
Copyright © 2011-2022 走看看