回顾:
正则表达式 \d \s \w . ? * + {n} [abc]
boolean matches(regex)
String[] split(regex)
String replaceAll(regex, newStr)
字符串编码 Unicode \uffff
操作系统编码:UTF-8 GBK
编码 new String(byte[], charset)
解码 str.getBytes(charset)
解决乱码:原路返回
Date:/ long = 0
new Date() - 当前系统时间
new Date(long) - 毫秒所表示的时间
after
before
getTime
setTime
时间格式化/解析 :SimpleDateFormat
yyyy-MM-dd HH:mm:ss E
String format(Date)
Date parse(String)
Calendar 抽象类
提供了一个静态的可以获得对象的方法
用处:
任意时间的切换和推算、计算
获得时间中的任意字段
get
set
add
数组:长度不可变
集合:
System.arraycopy(src, srcLoc, dest, destLoc, length)
Arrays.copyOf(src, newLength)
集合:支持Object,存储很多数据,没有长度限制
Iterable <- Collection(I) new实现类对象
|
List(I) Set(I) Queue(I)
| | |
ArrayList© HashSet© LinkedList©
LinkedList© SortedSet(I) Deque(I)
Vector© |-TreeSet© |-LinkedList©
|-Stack©栈
Collection-API: Iterable(可迭代的)
boolean add(E e) – 向集合中添加元素
void clear() – 清空
boolean contains(Object o) – 集合中是否包含指定元素
boolean isEmpty() – 集合中是否存在元素
boolean remove(Object o) – 移除指定元素
int size() – 集合长度,包含的元素个数
boolean addAll(Collection c) -- 将指定集合加入到目标集合中
boolean containsAll(Collection c)
boolean removeAll(Collection c)
boolean retainAll(Collection c)
Object[] toArray()
T[] toArray(T[] a)
(迭代器)Iterator iterator
迭代/遍历/依次访问
<泛型>:编译语法
动态把类型作为参数, 不规定泛型, 支持Object类型
规范程序员
E T O V K -> Object
具体类型
线性结构:- 原理
顺序
链表:单向链表、双向链表、循环链表
队列
双端队列
栈
树状结构:
二叉树
散列结构:
Hash值
作业:
1.选择排序
插入排序
冒泡排序
原理 + 代码
2.约瑟夫环
package java_04;
/*~~ /Calendar时间*~~
import java.util.Calendar;
import java.util.Date;
import org.junit.Test;
public class CalendarTest {
@Test
public void test01() {
Calendar cal = Calendar.getInstance();
System.out.println(cal);
//当前月份\年份\日期\时\分\秒\星期,统称字段
int month = cal.get(Calendar.MONTH);
System.out.println(month == Calendar.MAY);
cal.get(Calendar.DAY_OF_MONTH);
//设置任意字段,为任意值
//时间是2018年6月114日
cal.set(Calendar.MONTH, Calendar.JUNE);
cal.set(Calendar.YEAR,2018);
cal.set(Calendar.DATE,14);
System.out.println(cal.get(Calendar.DAY_OF_WEEK));
}
@Test
public void test02() {
Calendar cal = Calendar.getInstance();
//时间计算,保质期48天,什么时候过期
cal.add(Calendar.DATE, 48);// 今天加上 48天过期
System.out.println(cal);
System.out.print(cal.get(Calendar.YEAR)+"年");
System.out.print(cal.get(Calendar.MONTH)+"月");
System.out.print(cal.get(Calendar.DAY_OF_MONTH)+"日");
}
@Test
public void test03() {
Date date = new Date();
long time = System.currentTimeMillis();
System.out.println(time);
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH,Calendar.JULY);
**//1.Calendar 和date 类型转换;**
date = cal.getTime();
System.out.println(date);
cal.setTime(date);
**//2.Calendar 和long 类型转换;**
time = cal.getTimeInMillis();
System.out.println(time);
cal.setTimeInMillis(time);;
**//3.date 和long 类型转换;**
time = date.getTime();
System.out.println(time);
}
}
package java_04;**
Collection集合
**
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import org.junit.Test;
public class CollectionDemo {
@Test
public void test01() {//向集合中添加元素
//向上造型 -> 多态
Collection c = new ArrayList();
//boolean add(E e);
c.add(1);
c.add(3.14);
c.add(“haha”);
c.add(new Date());
c.add(3.14);
System.out.println(c);//ArrayList toString重写过了 不然是地址
//从集合中删除元素 3.14;- equals方法判断对象。
c.remove(3.14);
System.out.println(c);//移除第一个3.14
// c.clear();
// System.out.println©; 输出为[]
System.out.println(c.contains(1));//是否包含1
// c.clear();
// System.out.println©;
System.out.println(c.isEmpty());//是否为空 用过clear之后就是空的
System.out.println(c.size());//集合长度。
Collection b = new ArrayList();//泛型,用来规范程序员的行为。
b.add(1);
b.add(3.14);
b.add(5);
b.add(new Date());
b.add(“haha”);
b.add(10);
b.add(3.14);
System.out.println(b.containsAll(c));//b中是否包含c中的所有元素
System.out.println(c.removeAll(b));//移除此c中那些也包含在b中的所有元素
System.out.println(c);
System.out.println(c.retainAll(b));//仅保留此c中那些也包含在指定b的元素
System.out.println(c.addAll(b));//将b中的元素全部添加到c中
System.out.println(c);
}
@Test
public void test02() {
Collection<String> c = new ArrayList<String>();
c.add("hi");
c.add("hello");
c.add("my");
c.add("name");
c.add("is");
c.add("jane");
//toString重写过了
System.out.println(c);//输出的是集合
//1.集合转换成Object数组 - 实际可以转换成String[]
Object os[] = c.toArray();//调用toArray方法
System.out.println(Arrays.toString(os));
//2.集合转换成具体类型的数组
String[] strArr = c.toArray(new String[0]);//new String[0]参数只是为了使用类型
System.out.println(Arrays.toString(strArr));
}
@Test
public void test03() {
Collection<String>col = new ArrayList<String>();
col.add("lucy");
col.add("jarry");
col.add("tom");
col.add("jack");
col.add("rose");
col.add("jarry");
System.out.println(col);
//迭代集合,获取集合中的每一个元素。
**//1.获得迭代器**
Iterator<String> it = col.iterator();
while(it.hasNext()) {
String str = it.next();
if(str.equals("jarry")) {
it.remove();//迭代删除
}
System.out.println(str);
}
System.out.println(col);
for(String str:col) {//**简易的迭代器**,只能迭代遍历,不能迭代删除
System.out.println(str);
}
int num[] = {1,2,3,4,5,6};//**简易的迭代器**
for(int num1:num) {
System.out.println(num1);
}
}
}