正规的彩票

区分Java中的ArrayList和LinkedList

 更新时间: 2020年06月28日 15:25:24   转载 作者: 你的龙儿  
这篇文章主要介绍了如何区分Java中ArrayList和LinkedList,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下

一: ArrayList和LinkedList的大致区别如下:

1.arraylistshishixianlejiyudongtaishuzudeshujujiegou,arraylistshixianlezhangdukebiandeshuzu,zaineicunzhongfenpeilianxudekongjian。bianliyuansuhesuijifangwenyuansudexiaolvbijiaogao

2.linkedlistjiyulianbiaodeshujujiegou, charu、shanchuyuansushixiaolvbijiaogao  gu: 【charu、shanchucaozuopinfanshi,keshiyonglinkedlistlaitigaoxiaolv】linkedlisttigongduitoubuheweibuyuansujinxingtianjiaheshanchucaozuodefangfa,charu/shanchudiyigehezuihouyigexiaolvbijiaogao;

3:arraylisthelinkedlistdoushilistjiekoudeshixian,doucunchuyizubuweiyi,youxu(charushunxu)deduixiang, duiyuansujinxingtianjia、shanchudengcaozuo[ ji: listdexingzhi]

4.duiyusuijifangwengetheset,arraylistjuedeyouyulinkedlist,yinweilinkedlistyaoyidongzhizhen。

正规的彩票5.duiyuxinzengheshanchucaozuoaddheremove,linedlistbijiaozhanyoushi,yinweiarraylistyaoyidongshuju。

6:linkedlistbiarraylistgengzhanneicun

eg:(代码示例01)----ArrayList与LinkedLis的数据添加和查找耗时对比

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class HFSD {
 static final int N=50000;  //添加5000条数据
  static long timeList(List list){  //添加数据所需时间
     long start=System.currentTimeMillis();
    Object o = new Object();
     for(int i=0;i<N;i++) {
       list.add(0, o);
      }
     return System.currentTimeMillis()-start;
    }
  static long readList(List list){   //查找数据所需时间
     long start=System.currentTimeMillis();
     for(int i=0,j=list.size();i<j;i++){

      }
     return System.currentTimeMillis()-start;
    }

    static List addList(List list){
     Object o = new Object();
     for(int i=0;i<N;i++) {
      list.add(0, o);
      }
     return list;
    }
  public static void main(String[] args) {
    System.out.println("ArrayList添加"+N+"条耗时:
"+timeList(new ArrayList()));
     System.out.println("LinkedList添加"+N+"条耗时:
"+timeList(new LinkedList()));

    List list1=addList(new ArrayList<>());
    List list2=addList(new LinkedList<>());
    System.out.println("ArrayList查找"+N+"条耗时:
"+readList(list1));
    System.out.println("LinkedList查找"+N+"条耗时:
"+readList(list2));
   }

正规的彩票congyishangjieguo,zhengguidecaipiaoimenkeyikanchu arraylistgengshiheduqushuju,linkedlistgengduodeshihoutianjiahuoshanchushuju。

arraylist: neibushishiyongkezengzhangshuzushixiande,suoyishiyonggethesetfangfashihuafeishaoshushijiande,danshiruguocharuyuansuheshanchuyuansu,chufeicharuheshanchudeweizhidouzaibiaomowei,fouzedaimakaixiaohuihenda,yinweilimianxuyaoshuzudeyidong。

正规的彩票linkedlist: shishiyongshuanglianbiaoshixiande,suoyigethuifeichangxiaohaoziyuan,chufeiweizhilitoubuhenjin。danshicharuheshanchuyuansuhuafeishaoshushijian。

二: ArrayList和LinkedList的共有方法(即List的方法):

eg:(代码示例02)----ArrayList代码示例

package JIhekuangjia006.ArrayList;

/**
 * 小猪类
 */
public class Pig {
 private String name;
 private String sex;

 public Pig(String name,String sex){
  this.name=name;
  this.sex=sex;
 }
 public void setName(String name){
  this.name=name;
 }
 public String getName(){
  return name;
 }
 public void setSex(String sex){
  this.sex=sex;
 }
 public String getSex(){
  return sex;
 }
}
package JIhekuangjia006.ArrayList;

import java.util.*;

/**
 * 使用ArrayList集合进行操作数据
 */
public class Test1 {
 public static void main(String[] args) {
  //1.存储小猪信息
  Pig xiaojia=new Pig("小佳","母");//索引为0
  Pig xiaolong=new Pig("小龙","公");//索引为1
  Pig jiajia=new Pig("佳佳","女");//索引为2
  Pig longlong=new Pig("龙龙","男");//索引为3(与数组相同,从0开始)

  //为小猪排序
  List list=new ArrayList();
  //直接将元素添加排序
  list.add(xiaojia);
  list.add(jiajia);
  list.add(xiaolong);

  //将龙龙添加到索引为2的位置
  list.add(2,longlong);

  //list.add(jiajia);//List 接口存储一组不唯一,有序(插入顺序)的对象

  //2.获得小猪的总数
  //通过list.size()方法获取元素的个数
  list.size();
  System.out.println("小猪的总数为"+list.size());

  //3.逐条打印小猪信息
  //方法一:
for循环与get()方法配合实现遍历
  for(int i=0;i<list.size();i++){
   Pig center=(Pig)list.get(i);//因为list.get()的返回值为Object的类型,所以需要强转为Pig的类型
   System.out.println(center.getName()+","+center.getSex());
  }

  //方法二:
通过迭代器Iterator实现遍历
//  Iterator it=list.iterator();
//  while (it.hasNext()){
//   Pig center=(Pig)it.next();
//   System.out.println(center.getName()+","+center.getSex());
//  }


  System.out.println("*********************************************************");
  //4.删除小猪信息
  //删除第一只小猪,小佳
  list.remove(0);//与数组下标相对应
  //删除指定小猪,小龙
  list.remove(xiaolong);
  //将剩下的小猪信息进行输出
  System.out.println("删除之后还有"+list.size()+"只小猪,\n分别是:
");
  for(int i=0;i<list.size();i++){
   /**
    * Object get(int index)返回指定索引位置处的元素。取出的元素是Object类型,
    * 使用前需要进行强制类型转换
    */
   Pig center=(Pig)list.get(i);//所以需要强转为Pig的类型

   System.out.println(center.getName()+","+center.getSex());
  }

  System.out.println("*******************************************************");
  //5.判断集合中是否包含指定小猪
  if (list.contains(xiaojia)){//使用list.contains()方法进行判断
   System.out.println("集合中有小佳");
  }else{
   System.out.println("集合中没有小佳");
  }
 }
}

ceshiyunxingjieguoruxia:

三: LinkedList的特有方法:

eg:(代码示例03)----LinkedList代码示例:

package JIhekuangjia006.LinkedList;

/**
 * 小猪类
 */
public class Pig {
 private String name; //昵称
 private String sex;  //性别

 public Pig(String name,String sex){
  this.name=name;
  this.sex=sex;
 }
 public void setName(String name){
  this.name=name;
 }
 public String getName(){
  return name;
 }
 public void setSex(String sex){
  this.sex=sex;
 }
 public String getSex(){
  return sex;
 }
}
package JIhekuangjia006.LinkedList;

import java.util.Iterator;
import java.util.LinkedList;

/**
 * 使用LinkedList集合操作数据
 */
public class Test2 {
 public static void main(String[] args) {
  //1.存储小猪信息
  Pig xiaojia=new Pig("小佳","母");//索引为0
  Pig xiaolong=new Pig("小龙","公");//索引为1
  Pig jiajia=new Pig("佳佳","女");//索引为2
  Pig longlong=new Pig("龙龙","男");//索引为3(与数组相同,从0开始)

  //为小猪排序
  LinkedList list=new LinkedList();
  //直接将元素添加排序
  list.add(xiaolong);
  list.add(longlong);
  list.addFirst(jiajia);//将佳佳添加到第一个位置
  list.addLast(xiaojia);//将小龙添加到最后一个位置

  //list.add(jiajia);//List 接口存储一组不唯一,有序(插入顺序)的对象

  //2.获得小猪的总数
  //通过list.size()方法获取元素的个数
  list.size();
  System.out.println("小猪的总数为"+list.size());

  //3.逐条打印小猪的信息

  //方法一:
通过迭代器Iterator实现遍历
  Iterator it=list.iterator();
  while (it.hasNext()){
   Pig center=(Pig)it.next();
   System.out.println(center.getName()+","+center.getSex());
  }

  //方法二:
for循环与get()方法配合实现遍历
//  for(int i=0;i<list.size();i++){
//   Pig pig=(Pig)list.get(i);
//   System.out.println(pig.getName()+","+pig.getSex());
//  }

  System.out.println("************************************************");

  //4.
  //获取第一只小猪的信息
  Pig center=(Pig)list.getFirst();
  System.out.println("第一条狗狗信息是:"+center.getName()+","+center.getSex());
  //获取最后一只小猪的信息
  Pig center1=(Pig)list.getLast();
  System.out.println("最后一条狗狗信息是:
"+center1.getName()+","+center1.getSex());

  System.out.println("*****************************************************");

  //5.删除第一只小猪和最后一只小猪
  list.removeFirst();
  list.removeLast();

  System.out.println("*****************************************************");

  //6.输出剩下小猪的信息
  System.out.println("剩下还有"+list.size()+"只小猪,\n分别是:
");
  for(int i=0;i<list.size();i++){
   Pig pig=(Pig)list.get(i);
   System.out.println(pig.getName()+","+pig.getSex());
  }
  //7.判断集合中是否存在小佳
  if(list.contains(xiaojia)){
   System.out.println("集合中存在小佳");
  }else{
   System.out.println("集合中不存在小佳");
  }
 }
}

ceshiyunxingjieguoruxia:

正规的彩票yishangjiushiqufenjavazhongdearraylisthelinkedlistdexiangxineirong,gengduoguanyujavazhongarraylisthelinkedlistdeziliaoqingguanzhujiaobenzhijiaqitazhengguidecaipiaoxiangguandewenzhang!

正规的彩票相关的文章

  • Spring框架如何使用P命名空间进行注入

    Spring框架如何使用P命名空间进行注入

    这篇文章主要介绍了Spring框架如何使用P命名空间进行注入,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2018-12-12
  • ConcurrentMap.putIfAbsent(key,value)用法实例

    ConcurrentMap.putIfAbsent(key,value)用法实例

    这篇文章主要介绍了ConcurrentMap.putIfAbsent(key,value)用法实例,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2017-02-02
  • 详述IntelliJ IDEA提交代码前的 Code Analysis 机制(小结)

    详述IntelliJ IDEA提交代码前的 Code Analysis 机制(小结)

    本篇文章主要介绍了详述IntelliJ IDEA提交代码前的 Code Analysis 机制(小结),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • SpringMVC源码解读之HandlerMapping - AbstractUrlHandlerMapping系列request分发

    SpringMVC源码解读之HandlerMapping - AbstractUrlHandlerMappin

    这篇文章主要介绍了SpringMVC源码解读之HandlerMapping - AbstractUrlHandlerMapping系列request分发 的相关资料,需要的朋友可以参考下
    2015-02-02
  • Spring整合Quartz Job以及Spring Task的实现方法

    Spring整合Quartz Job以及Spring Task的实现方法

    下面小编就为大家分享一篇Spring整合Quartz Job以及Spring Task的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2016-12-12
  • SpringBoot2 整合 ClickHouse数据库案例解析

    SpringBoot2 整合 ClickHouse数据库案例解析

    这篇文章主要介绍了SpringBoot2 整合 ClickHouse数据库案例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2018-10-10
  • SpringMVC拦截器配置及运行流程解析

    SpringMVC拦截器配置及运行流程解析

    这篇文章主要介绍了SpringMVC拦截器配置及运行流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-06-06
  • 详解在spring boot中配置多个DispatcherServlet

    详解在spring boot中配置多个DispatcherServlet

    本篇文章主要介绍了详解在spring boot中配置多个DispatcherServlet,具有一定的参考价值,有兴趣的可以了解一下。
    2016-03-03
  • Spring Boot实现热部署的实例方法

    Spring Boot实现热部署的实例方法

    在本篇文章里小编给大家整理的是关于Spring Boot实现热部署的实例方法和实例,需要的朋友们可以参考下。
    2019-02-02
  • java删除文件和文件夹具体实现

    java删除文件和文件夹具体实现

    这篇文章介绍了java删除文件和文件夹具体实现,有需要的朋友可以参考一下
    2012-10-10

最新评论

正规的彩票_正规彩票平台app下载[首页最快线路√] 彩票官网_彩票官网app|网站首页 彩票平台_彩票平台快三-[平台最快线路√] 彩票app下载_彩票app下载官网下载快三_官方入口 彩票平台_彩票平台app-专注彩票门户 彩票官网_彩票官网app下载网址-HOME 彩票平台_彩票平台登录-老品牌最信誉 彩票app_彩票app客户端下载>> 首页 彩票平台_彩票平台免费送彩金18-点击进入>! 彩票平台_彩票平台官网〖2020购彩首选〗 彩票app_彩票app彩票投注平台-Welcome