Java小白学习日志 DAY1-1

Java学习日志

挑战接下来的100天里完成每天用一个小时复盘学习的Java内容 带着问题目的去学 而不是盲目看视频 要多写笔记 多问 并形成言简意赅的学习日志。

DAY1

学习内容 
尚硅谷模块18 算法知识 

1.collection 接口

理解为一个工具接口实现常用数据结构的调用

查 JAVA API的主要方法 add remove equals toArray

2.单列集合

与map双列集合相对应

列表

集合

  • HashSet(哈希表,完全无序)

  • LinkedHashSet(链表 + 哈希表,插入顺序有序)

  • TreeSet(红黑树,自然顺序或自定义排序)

队列

3.迭代器

iterator

hasnext next remove 实现遍历删除

4.学习建议

多动手 针对性 实际项目

5.哈希表

实现原理 单链表 + 数组 链地址法 ,开地址法

6.红黑树(先了解 重点学习)

尚硅谷视频(看到左旋转 具体代码实现后续再学习)

AVL 树中的一种实现 用于修改频繁场景

next avl树

7.泛型

class Box<T> {
    private T item;
    
    public void setItem(T item) {
        this.item = item;
    }
    
    public T getItem() {
        return item;
    }
}

泛型类 泛型方法

类型安全 编译前检查 无需强转 代码复用

T只收引用类型如包装类 String

8.包装类

基本类型变成对象

int -> Integer

char -> Character

用于集合框架 调用对象方法 需要null

自动拆装箱 包装类方法 包装类不可变

9.List接口

  • ArrayList 动态数组 查多改少

  • LinkedList 双向链表 改多查少

  • Vector 线程安全

10.增强for

1.作用:
  遍历集合或者数组
2.格式:
  for(元素类型 变量名:要遍历的集合名或者数组名){
      变量名就是代表的每一个元素
  }
​
3.快捷键:集合名或者数组名.for

小结

模块18回顾:
  1.Collection集合:单列集合的顶级接口
    a.add  addAll  clear size  isEmpty  remove  toArray  contains
  2.迭代器:Iterator
    a.获取:iterator方法
    b.方法:
      hasNext()
      next()
    c.并发修改异常:在迭代集合的时候,不能随意修改集合长度
      原因:调用add,只给实际操作次数+1.后面调用next的时候,没有给预期操作次数重新赋值,导致预期操作次数和实际操作次数不相等了
          
   3.数据结构:
     栈:先进后出
     队列:先进先出
     数组:查询快,增删慢
     链表:查询慢,增删快
         
   4.ArrayList
     a.特点:
       元素有序,有索引,元素可重复,线程不安全
     b.数据结构:
       数组
     c.方法:
       add(元素)直接在最后添加元素
       add(索引,元素)在指定索引位置上添加元素
       remove(元素)删除指定元素
       remove(索引)按照指定索引删除元素
       size()获取元素个数
       get(索引)根据索引获取元素
       set(索引,元素)将指定索引位置上的元素修改成我们指定的元素
     d.利用无参构造创建集合对象,第一次add时,会创建一个长度为10的空数组
       超出范围,自动扩容->Arrays.copyOf
       扩容1.5倍
           
   5.LinkedList
     a.特点: 元素有序 有索引(java提供了按照索引操作元素的方法,并不代表本质上拥有索引),元素可重复,线程不安全
         
     b.数据结构:双向链表
     c.方法:有大量直接操作收尾元素的方法
         
   6.增强for:
     a.格式:
       for(元素类型 变量名:集合名或者数组名){
           变量就代表每一个元素
       }
​
     b.原理:
       遍历集合时,原理为迭代器
       遍历数组时,原理为普通for
           
模块19重点:
  1.会Collections集合工具类的常用方法
  2.会使用泛型
  3.知道HashSet和LinkedHashSet的特点以及使用
  4.知道HashSet将元素去重复的过程       

11.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值