zoukankan      html  css  js  c++  java
  • 集合List内容

    集合List内容

    这次我们学习的主要内容为:集合框架 List

      集合框架介绍

      List集合与数组的区别:

    不同点:1> 数组的长度在使用前必须确定,一旦确定不能改变。而List集合长度可变,无须定义。

    2>  数组中必须存放同一数据类型的数据,List集合中可以存放不同类型的数据。

    数组举例:String[]  name=new  String[5]

     List集合的常用方法

    返回类型

    方法名称

    说明

    boolean

    add(Object obj)

    加入元素,返回是否添加成功

    void

    clear()

    清除集合中的元素

    boolean

    contains(Object obj)

    查找集合中是否存在传入的元素

    Object

    getint  index

    获取指定位置的元素

    boolean

    isEmpty()

    判断集合是否为空

    Object

    Removeint index

    删除指定位置的元素,并返回该元素

    int

    size()

    获取集合的大小

    Object[]

    toArray()

    将集合转换成数组

    注意:保存基本类型时用到了装箱拆箱;保存对象应重写equals方法。

    数组操作:

    package com.huizhong;

     

    public class ArrayDemo {

        public static void main(String[] args) {

           String[]  array=new  String[3];

           for (int i = 0; i < 3; i++) {

               array[i]="hello";

              

           }

           String  str=array[0];

           System.out.println(str);

        }

    }

    List集合:

    package com.huizhong;

     

    import java.util.*;

    public class ListDemo {

        public static void main(String[] args) {

           ArrayList  list=new  ArrayList();

           for (int i = 0; i < 3; i++) {

               list.add("hello");

       

           String  str=(String) list.get(0);

           System.out.println(str);

           }

          

        }

    }

    未重写equals

    package com.huizhong;

     

    import  java.util.*;

    public class Demo {

        public static void main(String[] args) {

           ArrayList  list=new  ArrayList();

           list.add(new  Student("tom",15));

           list.add(new  Student("carry",35));

           list.add(new  Student("hamoey",20));

           System.out.println(list);

        }

    }

     

     

    package com.huizhong;

     

    class Student {

           String  stuName;

           int   stuAge;

           public  Student(String  stuName,int   stuAge){

               this.stuName=stuName;

               this.stuAge=stuAge;

           }

       

    }

    输出结果:

    重写equals后:

    package com.huizhong;

     

    import  java.util.*;

    public class Demo {

        public static void main(String[] args) {

           ArrayList  list=new  ArrayList();

           list.add(new  Student("tom",15));

           list.add(new  Student("carry",35));

           list.add(new  Student("hamoey",20));

           System.out.println(list);

        }

    }

     

    package com.huizhong;

     

    class Student {

           String  stuName;

           int   stuAge;

           public  Student(String  stuName,int   stuAge){

               this.stuName=stuName;

               this.stuAge=stuAge;

           }

       

    }

    输出结果:

     List集合实际上包含了3个常用的集合类,即ArrayListVectorLinkedList

    ArrayList采用数组保存元素,意味着当大量添加元素,数组空间不足时,依然需要通过新建数组,内存复制的方式来增加容量,效率较低;而当进行对数组进行插入,删除操作时,又会进行循环移位操作,效率也较低;只有进行按下标查询时(get方法),使用数组效率很高。

    VectorArrayList的内部实现相似,Vector设计为线程安全,ArrayList设计为非线程安全。为了保证线程安全,Vector在性能方面稍逊于ArrayList,目前我们编写的都是单线程应用程序,应选择使用ArrayList

    ArrayListLinkedList均设计为非线程安全,ArrayList内部采用数组实现(与Vector相同),LinkedList内部采用链表结构实现。

    LinkedList采用链表保存元素,在添加元素时只需要进行一次简单的内存分配即可,效率较高;进行插入,删除操作时,只需对链表中相邻的元素进行修改即可,效率也很高;但进行按下标查询时,需要对链表进行遍历,效率较低。

    学习了这章的内容后,我们就会深有体会,在存多个用户的信息时给我们提供了很多的便利,比数组好用多了,因此我们要灵活的掌握它,我们学习时要多总结,多比较,理解其特性,将他学会学懂.

  • 相关阅读:
    客户端本地存储,web存储,localStorage
    js地理定位对象 navigator.geolocation
    使用defined和require引入js
    VUE的使用方法
    $.each()的用法
    jQuery的deferred对象详解
    jquery 中prop()的使用方法
    IE7下对某些seajs压缩文件不兼容的解决方法
    饼状图注释
    $.grep()的用法
  • 原文地址:https://www.cnblogs.com/originate918/p/6197474.html
Copyright © 2011-2022 走看看