java实用类
1java语言基础类
1.1Object类的函数
- equals()和hashCode():
- getClass():final方法,获得运行时类类型
- toString():方便输出显示
- finalize():
- notify():
- notifyAll():
1.2基本类型包装类8种
- Integer.MAX_VALUE等:类常数
- valueOf(string),toString():类和String互转
1.3Math
- static 数学函数
1.4System类
- System.getProperties():得到所有环境变量
- System.getPropery(name):得到环境变量name
1.5字符串
String类:不可变的,每次生成新String,带来效率问题
- trim():去空格
- endsWith()等:比较
- charAt():获得字符
- format:格式化输出
…
StringBuffer类:对本身操作
- append(),insert()…:
StringTokenizer:分割功能
StringTokenizer st=new StringTokenizer("23,213,2131,231",",");
double sum=0;
while(st.hasMoreTokens()){
sum+=Double.parseDouble(st.nextToken());
}
1.6日期
Calendar:util.Calendar
import static java.util.Calendar.*;//让对象能直接使用类中静态方法
//构造实例
Calendar calendar= Calendar.getInstance();
//月份+1
calendar.roll(MONTH,1);
//获得信息
calendar.get(MONTH);//DAY
Date:util.Date,实际是个long数字
SimpleDateFormat:text.SimpleDateFormat
Date date=new Date();
SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd");
//格式化date格式
System.out.println(formatter.format(date));
//解析date格式
date2= formatter.parse("2013-5-1");
//calendar实际使用date
calendar.setTime(date);
time api
//很多
2容器和常用算法
2.1 List:线性结构
- add
- get(idx)
- set(idx)
- for-each:语法糖 iterator
List<E> mylist=new LinkedList<>();//ArrayList
mylist.add(..);
Iteratro<E> iterator=mylist.iterator();
while(iterator.hasNext()){
E e=iterator.next();
}
for(E e:mylist){
e....;
}
2.2 Stack,Queue:
——可抛出异常 |返回元素
- 插入:add(e) |offer(e)
- 移除:remove() |poll()
- 检查:element()|peek()
Stack<String> stk=new Stack<>();
stk.push(.);
stk.pop();
//用链式线性表实现
Queue<Integer> q=new LinkedList<>();
//自动装箱,入队
q.offer(1);
//带返回值的,出队
System.out.printlin(q.poll());
2.3 Set:HashSet,TreeSet两种实现
- 先判断hashCode()不等,相等时(冲突时)判断equals()或==是否为false
- hashCode()意义:让内容相同的对象有一样的hashcode,内容不同的hashcode不同
- 添加:add(key);重复加无效
- 判断:contains(key);
2.4 Map:key-value;HashMap,TreeMap(红黑树)两种实现
- put(key,value):加入,相同key取后面的
- get(key):获得value
- entrySet():返回Map.Entry
2.5 排序和查找
1 Arrays:对数组直接操作
- Arrays.asList(数组):得到一个List对象
- Arrays.sort(list,c):
- Arrays.binarySearch(list,key,c):二分查找前先排序
- Comparator c:一个比较器的实例
增序:return顺序减/降序:反向减
String[] s=....;
//<Strng>修饰sort方法对s的元素类型排序
Arrays.<String>sort(s);
Arrays.<String>binarySearch(s,s[2]);
2 Collections:对容器的操作
//比较器类实现了Comparator
//重写compare(obj1,obj2)函数确定元素的顺序
Collections.sort(list,comparator);
//lambda表达式直接new一个匿名比较器
Collections.sort(list,(p1,p2)->p1-p2);
2.6 泛型:高要求
- <>:类后面class a,方法前面 T func(){}
- :T是任意一种类型
算法:遍试、枚举
for(;;){if(){}}//试遍所有可能并判断
算法:迭代
while(){x=f(x)}//不断计算直到x满足条件
算法:递归
f(n){f(n-1)}//化成子结构问题
算法:回溯
x++;if()x–;//尝试可能,不满足恢复到先前状态