java学习过程的简单记录

1、LinkedList与ArrayList的区别

1)、LinkedList是基于链表的数据结构,ArrayList是实现了基于动态数组的数据结构;

2)、对于查询(get),ArrayList比LinkedList效率高,因为LinkedList要移动指针

对于新增(insert)和删除(remove),LinkedList比ArrayList效率高,因为ArrayList要移动数据

代码如下:

public class ComporeTest {

private  static Logger logger = LoggerFactory.getLogger(ComporeTest.class);    private static Integer N = 5000;

public static Long timeList(List list){        Long start = System.currentTimeMillis();        logger.info("start{}",start);        for(int i = 0; i < N; i++){            list.add(i);        }        logger.info("timeList{}",System.currentTimeMillis() - start);        return System.currentTimeMillis() - start;    }

public static List  addList(List list){        Object o = new Object();        for(int i = 0;i < N; i++){            list.add(0,o);        }        logger.info("测试ArrayList与LinkedList的效率");        return list;    }

static Long readList(List list){        long start = System.currentTimeMillis();        for(int i = 0; i < list.size(); i++){            list.get(i);        }        return System.currentTimeMillis() - start ;    }

public static void main(String [] args){        logger.info("ArrayList添加"+N+"条消耗时间:{}",timeList(new ArrayList()));        logger.info("LinkedList添加"+N+"条消耗时间:{}",timeList(new LinkedList()));        List arrayList = addList(new ArrayList<>()) ;        List linkedList = addList(new LinkedList<>());        logger.info("ArrayList查询"+N+"消耗时间:{}",readList(arrayList));        logger.info("LinkedList查询"+N+"消耗时间:{}",readList(linkedList));    }}测试结果:

原文地址:https://www.cnblogs.com/smileZ/p/9805353.html

时间: 2024-10-02 10:11:42

java学习过程的简单记录的相关文章

9天C#转Java学习过程,自己记录一下

其实没有完整的9天,就是连续每天花点时间,过程so frustrated,踩坑无数...下面是学习过程的记录 第1天 开始正式学习JavaEE,已完成: 1. Tomcat安装: 2. Tomcat配置.完成了IIS占用的80端口停用,将Tomcat监听端口改为80端口,然后修改hosts,增加解析www.javademo.dev到127.0.0.1.然后写了一个最简单hello-world html页面,在浏览器输入前面的网址可以访问.Tomcat/conf/server.xml配置如下: <

java分割字符简单记录

java分割字符串用split,例如 String sourceStr = "1,2,3,4,5";String[] sourceStrArray = sourceStr.split(",");for (int i = 0; i < sourceStrArray.length; i++) {    System.out.println(sourceStrArray[i]);} split分隔符总结 1.字符"|","*"

java语言实现简单的洗牌,发牌

java学习过程中,老师让写了个简单的斗地主洗牌发牌的程序,一下就是程序代码: package com.java.lei.homework; import java.util.Arrays; import java.util.Random; public class PokerGame { //1.创建数组,用以存储扑克牌 static String[] pokers = new String[54]; public static void main(String[] args) { //2.创

Java学习-007-Log4J 日志记录配置文件详解及实例源代码

此文主要讲述在初学 Java 时,常用的 Log4J 日志记录配置文件详解及实例源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:2015-1-30 13:54:02,请知悉. 所需的 jar 包下载链接为:http://yunpan.cn/cKE56sxqtQCfP  访问密码 63d8 有关 Log4J 日志文件中日志级别及文件配置的详细情况,在 Log4J 的配置文件(xml.properties)中有详细的介绍,敬请参阅!

java中的List记录是否完全匹配方法

今天要说的是给List分组,然后用Map来封装,可能你看了以后还是有一些模糊. 先看一下项目结构图: User类是一个VO类,主要逻辑还是在MapTestBak上面. 运行效果: 原理图: 1.在starsList中有两组人,共三人 2.在dolList中有一组人,共两人 3.经过marched操作,最后匹配到一组人到result中.即第一组人. 原理很简单. =================================================== 源码部分: ==========

利用java实现一个简单的远程监控程序

一般的远程监控软件都是用c或者c++等语言开发的,而使用java如何来实现相同的功能呢. 首先我们先介绍一下一个简单的远程监控程序的实现原理. 功能一,远程屏幕监视 (1) 必须要有监控端与被监控端,而且程序保持启动. (2) 被监控端获取本机的屏幕截屏发图给监控端. (3) 监控端在本地窗口中显示被监控端发送过来的图像. (4) (2)(3)步骤重复执行,这时在监控端即可实时监视到被监控端的桌面操作了. 功能二,远程控制 (1) 必须要有监控端与被监控端,而且程序保持启动. (2) 在监控端监

Java发邮件简单实现

给出一个Java发送邮件的简单实现. 下载 Java代码   1.  接口 public interface MailSendServDu { public void sendEmail(String addressee, String subject, String content); } 2.  实现 import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.Mime

cocos2d-x在android的接合简单记录

普通android工程入口: src/org/cocos2dx/cpp_empty_test_diff/MainActivity.java cocos2d-x入口稍微不同 src/org/cocos2dx/lib/Cocos2dxActivity.java 见 onLoadNativeLibraries 加载NDK编译生成的.so 这时候应用已经启动. 然后利用jni调用c++内容,启动游戏引擎. 具体是: Cocos2dxActivity.java init -> onCreateView -

Java Calendar类简单用法

我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3832307.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. 初始化 Calendar calendar = new GregorianCalendar(); set方法 calendar.set(Calendar.YEAR, year); get方法 int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);