集合类型的特点:
1.和数组比较长度,数组长度固定,集合可以随便添加元素
2.数组,任意的类型,集合引用的类型,基本数据类型,需要包装类
集合更贴切java自己的面向对象
集合类,long不需要导包
更方便,更加简单的操作
所有类的父类都是object
要求放什么
房子类都可以放进去
Collection,接口
List(接口)集合添加的元素是有序的,可重复的,有索引的
Set(接口)集合添加的元素是无序,不重复,无索引的
LIst Set不能new对像,匿名内部类,需要重写所有方法
ArrayList底层是数组,有下表很像数组,方法调用
Linked双向链表
HashSet
迭代器,专门为了集合而生,遍历集合
for i 循环的时候,删除的时候会发生错误,还有可能会数组越界
提供了remove方法
迭代器只能用一次
List接口是有序的,存入和取出的顺序一致,允许添加重复的元素
Set是无序的Map,也是无序的,所有不能重复元素
list的自己的方法
add 继承了O还有自己的add重载了
重写
名称,参数列表,返回值,
异常
访问权限
1.get rangcheck
指定位置添加其他后移add
add all
4.indexOf
5.lastindexof从后最后一次出现的位置
6.remove删除并返回
3.set替换成相应的值
subList
7.subSpring切割
List subList要钱不要后
减法sub
mul div reamdner
遍历,要toArry?重写了 toString
有序可重复,才可以下标
,删除之后剩下的下标会向前补位
用迭代器删除比较好
自己删除容易出错
细微的区别,为什么喜欢ArryList
开头
pop弹出
instead of
LinkedList 链表
1.Array查找更快
2.链表查找慢,因为不是连续的
3.加中括号?
4.改一下指针
新增快Linked
查看数据大多数,所以大多数是ARR
查询修改块
新增删除块
底层的区别
替换迭代器
规定就是泛型
Set接口
特点
无序,存入的顺序和取出的顺序不一定相同
有序,存入的顺序和取出的顺序相同
因为无序所以set集合的元素不可以重复,放入重复的元素,会怎么样?
toString方法会不会重写了然后取出元素了,也是无序的,数字
接口不可以直接new,要new实现类
放1和对象实现了Comparable自定义的类放入set要实现接口才可以放进去
没有放进去重复的,放进去的是第一个放进去的,同一个类的,会不会放进去
TreeSet放的类要放同一个类,而且自己定义的类要实现Compare接口实现方法
还是相同的,但是字符串还是给排序了,因为取出来是无序的
Set呢?
hash和inter
1.TreeSet可以自动对数字进行排序
字符串时间,系统自己带的
他们还重写了方法如果1换位置,-1不换,0,一样不添加
hashSet
2.用来进行比较然后放值,有比较器,需要同类型。
3只能修改自己的不能修改Java自己带的
软键设计的六大原则之一开闭原则,对修改关闭,对扩展开放
第一个,比较器,无法修改全部
第二个,通过扩展来实现,扩展继承,实现,匿名内部
comparator
TreeSet构造方法传一个new 匿名内部类,重写它,通过compare
ApI数组的排序
Collections.sort排序,对List也是比较器比较
不用实现一个类了 Coppartor的优先级高
先有Set?然后实现自己的重写方式
set是无序的,treeSet是有进行了序的比较器,list有序,通过比较器进行有序
比较器,
List
现在单纯是比较器的问题了
还有list本身的方法sort方法
稀土掘金
被背刺
i2-i1倒序,i1-i2是正序,String转int,interger的方法pareInt
泛型
引用数据类型都能放
规定的类型,只能放规定的类型
<E>
加入那个类.add只能加Student
泛型为什么要存在
经常报错,类型转换异常,类型转换异常
for,直接写这个类型,可以直接写这个类型的方法,
传进来的都是泛型。全部被替换成了这个类的方法直接用
自定义泛型
如何自定义范型
E element因为集合中存放的是元素
KV
?不确定
上界通配符
super
通配符,非强制
优点:规定了传入的某一个类型,传入其他类型会报错,
缺点:不灵活,只能传某一个类型
自定义泛型,这个类就是某一个类了。
字段该是什么类型数据库
身份证号是字符串
手机号也用字符串
手机号有时候有—
二维数组
初识化的分布,哪个是,这个要成员方法
入参的使用,可以给不确定的数,用入参给
三目运算符,?怎么使用。
怎么报错?
integer.passint,字符串转int
hashset的底层是散列表Map
map不是集合,map是个单独的接口,
map里面有很多东西,这个那个的,
散列表
1.调用hashcode方法计算hash值
2.放进数组的位置
3.hash值相同,用equals进行比较
4.相同不添加,不同生成链表,
5.链表个数超过8,该链表自动转化成红黑树
自定义的类要重写equals和hashcode。
泛型更要复写hashcede和equals方法
东西这么深,还有好多东西,
hashmap还有区别,
map.put
hashmap
set所有的v都是空对象的map
重写过后的,东西,比较的时候,生成的hash值,和equals
后面刚不进去,k不会放进去,不放
讲一个add
删除
遍历
hashset
散列表
set和map
map.put
map底层是散列表
hashmap的方法
set还要好用list
set方法少,
不关心v
set绝对不同
set场景单一
重写方法,equals和hashcode
免费领一个学生的服务器,淘宝还要钱
现在需要的是什么?
Map接口
hashMap
底层散列表
treeMap
ssm
properties,文件,读配置
ssm的使用场景
kv
单向,通过key找到唯一的value值
key和value都可以是任何引用数据类型
允许存在value为null,但是只允许一个k
可以去k的重,可以去重取出k
只能放一个null
map Java。util导包记得
put(k,v)
也是有泛型
打印map
k还是原来的k
但是值会被覆盖
我有能力让所有人都,所有人都,
当放入的k相同时,k不变,v被覆盖。
map.size
输出的是个数,
把k传进来,remove
clear
containsKey,返回给Boolean
containsvalue,返回的也是Boolean
map.value
得到值的集合。泛型问题
两个重点方法。
keySet,返回一个集合,set,全是key
get,给key先keyset,然后再get
entrySet
entry接口
map中的接口,可以看作一个实体类
getvalue getkey
直接entryset
set和map中的key都可以去重,key就是
equals和hashcode怎么去重
treemap
实现接口,和方法comparebale接口和方法,
已经有了
自定义的方法,自己的比较器
匿名内部类
k排序了,v没有排序,
复写了才能写进去
set直接传进listsort,list
integer。passint
自己传?,匿名内部类,传接口
properties
读取配置
密码和值
配置文件,不用继续执行
SSM
new
第一步,读取,
load
传进去,
set
get
1.2.3.备用的东西,默认值
流进来,一直get,