2022.01.04-JAVASE结束-从Stringbuffer类开始-到Collection结束
2022/1/17 22:05:05
本文主要是介绍2022.01.04-JAVASE结束-从Stringbuffer类开始-到Collection结束,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
接上篇
小不忍则乱大谋
68.StringBuffer类–提升版String-----自动扩容
底层为new char[16]
如果直接new Stringbuffer
69.StringBuffer类方法
增删改查
增:append();
删: delete(2,5)
[ )
改:setcharAt()
replace(0,5,str)
[ )
查:charat()
插:insert(5,str)
长:length
遍历:toString
反转:reverse
70.时期日期的API
CurrentTimes
SimpleDateForamt
71.比较器(重要)
1.Comparable 接口
继承
重写
2.Comparator Comparator com=new Comparator(){ @overwrite 重写比较方法 }
72.穷举类ーーenmu
enmu Season{
Sping,vacation,FREE
重写 toString(){ } }
73.enmu的常用方法
values()
value of()
74.枚举类分别可以进行不同方法设置
Winter{
} 使用时: Switch(Season){ case Winter: }
75.注解类
1.Retention
表示线程的生命周期
2.Target
表示可以修饰的范围
76.Collecetion 和 Map 两种体系
集合—Collecetion
和
图—Map
77.集合Collcetion------------非常重点
一种包含数据的方式
分为两种大分类:
Collcetion:
List----------------有序 可重复-----动态数组
Set----------------无序 不重复-----集合
-------------Arrarylist(线性表) List-----------------LinkedList(链表) ------------Vector(向量) -------------HashSet Set-----------------LinkdeSet ------------TreeSet
78.Map的分类
Map为函数对应
Key不可重 Valu可重 Key----Value 键-----值 成组添加 HashMap Linked HashMap TreeMap Hashtable Properties
79.Collection接口中的方法
add(obj e)
size()
addall(int index, )
costains()
实际上采用的是“equals方法”并不是“==”
实际上重写了“equals”
costainsAll( collection col);
------判断是不是集合col全部都存在
remove(Obj obj) ------删除内容更一样的
-------删掉了 true
-------未删除 false
removeAll(Col col1)------------重要!
---------删除col1的所有元素
----------------------------只删交集!!!!
retainAll()-------求交集
-----对coll进行了修改
equals()
hashcode()------返回当前对象哈希值
toArray()-------返回一个数组
-------添加是什么 返回什么数组
集合----》数组
{//底层实现
List list=Arrays.aslist(new String[]{“aa”,“bb”})
}
80.集合如何进行遍历?
1.迭代器模式-----------重要 代码举例:
遍历
首先Arraylist数组 coll coll添加数据 再然后使用coll调用迭代器 a为coll.iterator 判断a.hasNext() 输出a.Next()
Collection coll=new ArrayList(); coll.add(123); coll.add(456); coll.add("王娇璇"); coll.add("付梦雪"); coll.add("Ether"); java.util.Iterator a=coll.iterator(); while(a.hasNext()){ System.out.println(a.next()); }
用于遍历,调用迭代器时候,返回-----一个迭代器的实例 重要—————————— 在调用.Next()时,指针才下移 调用hasNext(),指针不动,判断是否存在Next
删除 remove()
如果里面有“Tom” 删除“Tom” 这里作为,迭代到哪一个时候和哪一个进行比较
Collection coll=new ArrayList(); coll.add(123); coll.add(456); coll.add("王娇璇"); coll.add("付梦雪"); coll.add("Ether"); coll.add("Tom"); java.util.Iterator a=coll.iterator(); while(a.hasNext()){ Object obj=a.next(); if("Tom".equals(obj)){ a.remove(); } } java.util.Iterator b=coll.iterator(); while(b.hasNext()){ System.out.println(b.next()); }
2.增强For-each循环------------不改变coll,只是取出赋值 for(obj : coll) { sout(obj) } -------------- 从coll中 挨个 取出obj对象 输出 挨个取出的obj对象
81.List---------动态数组
1.ArrayList线性表 自动扩容-------默认1.5倍 首次加长------加10长度 JDK7--------底层为饿汉式 JDK8-------底层为懒汉式 2.LinkedList Node为基本元素------Value和指针(指向后继Value的数值) 也存在双向列表
82.List接口的常见方法
add() add(index,obj)------从索引处插入obj indexof()-------首次出现位置 lastindexof() remove(index)------删除索引对应的值 remove(value)-----删除与value相同的值 set(int index,obj)------索引改为obj sublist(int start,int end)-------取出---不改变原数组 增:add 删: remove 改 set 查 get 插 add 长 size 遍历 iterator迭代 for each 加强For循环 普通 for循环
83.Set接口
Hashset------------可以存null,线程不安全 每个格子下以Linkedlist形式添加 底层----- 初始化为16长度 无序性----哈希值排序---所以无序 不可重复性----每次添加时,equals判断,不返回true add方法的底层逻辑: 哈希值定区域 无元素---添加成功 有元素--- 原本有n个链表形成的b a和b哈希值不相同----添加成功 a与当前位置所有进行equals----相同--失败 不相同---成功
84.hashset 调用 add方法时候
重要----------------重写 Hashcode()和 equals() 方法
用一套规则 这样才能有效的添加判断!
85.Hashset子类-----LinkedHashset
额外加了双向链表—记录前一个和后一个的值
优点:频繁的遍历–更好用
86.Treeset----自带排序 加进去就排好序
因此:
必须同一类
必须可比较
可以按照“自然”和“定制”排序
87.Map接口----重头戏来了
怎么理解Map? Key---value 键---值 x=f(x)==y HashMap-----LinkedHashMap HashMap----properties Sorted----TreeMap HashMap--------线程不安全 效率高 可存null的key或者value -----LinkedHashMap ------遍历时,可以有添加的顺序 -------高频率遍历用 TreeMap------添加就已经排序了,红黑树
88.Map接口的结构的理解
单个为Enty(key,value)----一一对应
key-----set存----不重复 value随便 特点-----不重复 无序 重要------key所在的类---重写equal()和hashcode()---毕竟实现了set嘛
89.HashMap的底层实现原理
1.实例化----默认16长度的Enty[] 2.以map.put(key1,value1)---为例 首先 key1.hashcode()---判断往哪里塞--Key定位置 判断位置为空---添加成功 不空----假如存在key2 key1.equals(key2)? 相同-------Key1替换key2----Value1替换value2 不同---加 3.JDK7---------Enty[]--set存---最后也是Arraylist JDK8——-------Node----set存--链表+红黑树 何时?----List>14&&表>8
90.HashMap源码--------重要!!!!
JDK7-----
加载因子
临界值
Put方法
JDK8-----
加载因子
被树化表最小容量
…
91.LinkedHashMap的底层源码
按照添加顺序进行排序
92.Map接口的方法
以HashMap为例
Map map=new HashMap<>(); //add map.put("A",87); map.put("B",87); map.put("C",87); map.put("D",87); //修改 map.put("A",120); //remove Object value=map.remove("D"); //clear map.clear(); // map.put("A",87); map.put("B",87); map.put("C",87); map.put("D",87); //get() //sonstainskey //constainsvalue
put ----加入或者修改 remove------形参key---返值value clear----输出空{} 查询 get------key-value containskey containsvalue size isEmpty equals 遍历 key value key-value set keyset()-----key用set存的 --变为对set的遍历 value-----Collection存的 --一般遍历 key-value 怎么遍历? Entry---用set存的 --set遍历 或者 先调key---key一一对应value
93.TreeMap-
1.也是key-value
2.key必须为同一类
3.key必须可比较----继承or重写com
怎么遍历? map.entryset()---entry用set存的 While(hasNext();){ }
94.Collections大类(工具类)
同ArrayLists
reverse()----反转 shaffle---随机 sort----排序咯 swap(list,i,j)----交换 max() min() frequencey()----出现次数 copy() ----List dest=Array.alist(new object[List.size()]) replaceAll()
这相当于高强度的复习了,真的是温故而知新啊!
这篇关于2022.01.04-JAVASE结束-从Stringbuffer类开始-到Collection结束的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南