zoukankan      html  css  js  c++  java
  • 2019/3/2周末 java集合学习(一)

                                                  Java集合学习(一)

                                                       ArraysList

    ArraysList集合就像C++中的vector容器,它可以不考虑其容器的长度,就像一个大染缸一

    样,无穷无尽的丢进去也没问题。Java的数据结构和C有许多的共同之处,希望在学习的

    过程中可以相互借鉴。

    以下为ArraysList的使用方法: 首先创建ArraysList对象: ArraysList A = new ArraysList();

    1. 添加对象实例: 有两种添加方法,一是直接添加,放到后面去,二是指定位置添加:

    一直接添加:A.add(  对象名 );   二: 指定位置添加 : A.add(  数字 , 对象名  );

    1. 判断容器是否存在某对象: A.comtains( 对象名 ) //是判断是否是同一个对象
    2. 获取指定位置的对象 A. get ( 数字 )
    3. 获取对象的指定位置 A.indexOf ( 对象名 )
    4. 获取并删除 A.remove( 数字)
    5. 替换 : A.set( 数字 , 要替换的对象   )
    6. 获取大小 : A.size();
    7. 转换为数组 Hero H[] = (Hero[]) A.toArrays(new Hero[]{})
    8. 把另一个容器的对象都加进来:A.addAll( 容器名 );
    9. 清空: A.clear();

    虽然ArraysList有着太多的方便,但是因为有着太多的各种不同的类的对象,这会导致

    强制转换出现问题,于是,泛型就出现了,泛型要求一个ArraysList只能存入一种类型的

    对象,这样既保存了方便,又可以避免类型错误。

    创建一个泛型: List<Hero> Ls = new ArraysList<>();

    原则:只能存放该类型以及其子类。

    遍历方法:

    1. 利用for循环进行便利,for( int i = 0 ; i < A.size() ; i++){}
    2. 迭代器经行遍历:

    创建迭代器: Iterator It = A.iterator();

    循环:A.hasNext();

    获取对象:Hero H = A.next();

    1. 增强型for循环 :for( Hero H : A){}

    ===============================================================================

                                                                     LinKedList

    LinkedList同样实现了list接口,可以拥有和ArraysList一样的方法,除此之外,它还实现了Deque接口,它

    的储存方式像链表一样,可以很方便的在头部或尾部进行插入或删除(但也不是一般的链表,是双向链表)

    创建LinkedList容器:

    LinkedList<Hero> Hs = new LinkedList<>();

    区别于ArraysList之外的特殊的使用方法:

    查看首部元素:    Hs.getFirst(  );

    查看尾部元素:   Hs.getLast(  );

    获取并删除首部元素:   Hs.removeFirst(  );

    获取并删除尾部元素:   Hs.removeLast(  );

    除此之外,LinkedList也实现了Queue接口,可以作为队列使用,以下是将LinkedList作为队列使用的方法:

    1. 将元素插入后面:Hs.offer( new Hero(“盖伦”);
    2. 取出并删除第一个元素:Hs.poll();
    3. 拿第一个元素出来瞧一瞧但放回去 : Hs.peek();

     

    讨论:Arrayslist LinkedList的区别:

    ArraysList 插入数据,删除数据 效率低下

    LinkedList 插入数据,删除数据 速度很快

    ArraysList 定位很快

    LinkedList 定位很慢

     

     

     

                                  

                               

     

  • 相关阅读:
    海康视频 rtnp转 flv
    生成随机不重复数列表(C#)
    保证应用程序只运行一个实例[c#]
    [C++] C++指针的那些事 常量,变量,指针及指针相关的三个数值
    C#压缩与解压缩流类 GZipStream 的使用
    [C# WinFrom 使用 Google Map] 在地图上画轨迹线
    一个泛型应用示例
    没五笔,不写了
    利用Socket HTTP协议获得HTML代码方法
    Remoting实例(客户端发送信息)
  • 原文地址:https://www.cnblogs.com/qq1005801715/p/10462764.html
Copyright © 2011-2022 走看看