java数据容器:
1.java数组:定长类型一致的数据容器 限制:使用数组的时候必须明确长度
2.JavaBean:java通过对属性的set/get的可重复使用数据类型
3.java集合:数据结构+算法构建的数据容器
数据结构:数组、链表、堆、栈、树。。。 +算法
高斯林 看到了C,C++语言存储数据的不方便 ,设计了Java集合 (Java存储各种数据 的不同特性的容器)
Java集合: Java.util包下 java.util.concurrent包下 多线程并发的
java集合分为两个父类接口:Collection接口(值)和Map接口(键和值)
Collection接口(值)又划分了两个父类接口:List接口存放数据 特点:有序可以重复
Set接口存放数据 特点:无序不可以重复
Collection接口包含:
1.List接口:有序可以重复
实现子类:
Arraylist 数组 底层数据结构:数组 线程非安全(非同步)
Linklist 链表 底层数据结构:链表 单向链表和双向
Vector 向量 底层数据结构:数组 线程安全
Stack 栈
Arraylist 数组 遍历很快 Linklist 链表 增删改查很快 Vector 速度很慢,但是线程安全
2. Set接口:无序不可以重复
实现子类:
HashSet 哈希算法
TreeSet
Map接口:
JavaBean:
JavaBean是参照数据库来定义的
table:t_stus, 字段:id, name, address
JavaBean 就是一个java类 是一个java的存取数据的java类
Stus类名:类中的变量 id,name,address 提供属性的set/get 属性要求首字母大写
选中,右键 source
自动生成方法:
也可以选择在后面生成:
javabean:
下面两个方法,从方法的参数角度 污染 参数少了(对象) 干净易用
javabean很方便,但是只能传递一个学生的信息。
数组:
数组的增删改查:
改:
删除:(下标删除)
删除:具体对象
删除所有:
清除:
包含:
arraylist 需要全部匹配(完全匹配),url不需要(模糊匹配):
获取下标,有相同的默认取第一个,用last就是取最后一个:
过滤重复:
写个4位不重复的验证码:
random.nextInt()的用法
1、不带参数的nextInt()会生成所有有效的整数(包含正数,负数,0)
2、带参的nextInt(int x)则会生成一个范围在0~x(不包含X)内的任意正整数
例如:int x=new Random.nextInt(100);
则x为一个0~99的任意整数
3、生成一个指定范围内的整数
调用方法randomInt(10,20);则会生成一个[10,20]集合内的任意整数
分割字符串:
sublist:
(百度)
fromIndex - 截取元素的起始位置,包含该索引位置元素
toIndex - 截取元素的结束位置,不包含该索引位置元素
所以结果为:
substring:
百度
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
substring() 方法返回的子串包括 开始 处的字符,但不包括 结束 处的字符。
链表形成栈,以及压栈 出栈:
正常顺序的链表:
链表头和尾:
stack 机制和linklist差不多;
Set接口:无序不可重复