Java学习_Day016

Timer定时器 and 数据结构(基于数组,基于链表)

1. 定时器
2. 数据结构


1. 定时器
1.1 定时器执行任务的认识
        (1) 定时炸弹: 一个炸弹 + 一个定时器组成的
        (2) 原理: 当定时器到指定时间了就引爆炸弹(到了指定时间执行指定的任务)
        
1.2 什么是定时器
        定时任务 java.util.TimerTask 由定时器 java.util.Timer 安排为一次执行或重复执行的任务
        
Timer  :
        可以遇到的场景: 炸弹, 闹钟, 电器, OA(办公自动化)
        
        构造方法: Timer() 创建一个新的定时器
        方法: void schedule(TimerTask task , long delay)  在指定延迟时间之后执行
                    void schedule(TimerTask task , Date time)   在指定的时间执行
                    void schedule(TimerTask task , Date firstTime , long period)  在指定的时间每隔多时间重复执行
                    void scheduleAtFixedRate(TimerTask task , Date firstTime , long period)  在指定的时间每隔多少时间重复执行,并且将没有执行的补充执行

2. 数据结构
数据结构: 对数组存储的一种方式(结构)
        1. 基于数组的结构
                基本数据类型
                数组
                字符串
                
     String     StringBuilder
     底层   数组   char
     默认大小16   超过了16 大小,创建一个新的数组,新的数组是原始数组的2倍
     创建指定大小的字符串   int[ ]
     通过方法来添加数组
     
 基于数组的数据结构:
        容器1.0 :
                    1. 只能存储 int 整数
                    2. 实现半自动扩容
                    3. 全自动扩容
                    4. 重写 toString
                    5. 通过索引查找元素
                    6. 通过索引删除元素
                    7. 获取容器元素长度(存储的个数)
     特点:
                1. 新增  (性能低)
                2. 修改  (性能高)
                3. 查询  (性能高)
                4. 删除  (性能低)
                
                
 2. 基于链表的结构 LinkedList
        
自定义一个新的类型Node,类里面定义两个字段,
 一个Object类型字段存放值
一个Node类型字段,存放下一个Node对象地址

新认识: LinkedList     Node
链表新增方法: void add (Object  value)
创建盒子:  Node  n =  new  Node(value);
首部节点: firstNode
尾部节点: endNode

        容器1.0: 
                    1. 存储任意的类型
                    2. 新增数据
                    3. 重写 toString
         总结:
                链表特点:
                  新增: 性能高
                  删除: 性能高
                  修改: 性能低
                  查询: 性能低

重写 toString 方法:
    @Override    
    
    public String toString( ) {    
    StringBuilder sb = new StringBuilder( "[" ) ;     
    // 循环遍历链表;        
    Node n = firstNode;
    while( n != null ) {      
    // 取出数据拼接到字符串中;                          
    sb.append(n.getValue( ) ) ;   
    // 判断是否存在下一个节点;           
    if (n.nextNode != null) {    
    sb.append(",");            }
    //  获取下一个节点;           
    n = n.nextNode;        }        
    sb.append("]");  
   return sb.toString();   }    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值