Java学习--基础类和容器

java实用类

1java语言基础类

1.1Object类的函数

  1. equals()和hashCode():
  2. getClass():final方法,获得运行时类类型
  3. toString():方便输出显示
  4. finalize():
  5. notify():
  6. notifyAll():

1.2基本类型包装类8种

  1. Integer.MAX_VALUE等:类常数
  2. valueOf(string),toString():类和String互转

1.3Math

  1. static 数学函数

1.4System类

  1. System.getProperties():得到所有环境变量
  2. System.getPropery(name):得到环境变量name

1.5字符串

String类:不可变的,每次生成新String,带来效率问题
  1. trim():去空格
  2. endsWith()等:比较
  3. charAt():获得字符
  4. format:格式化输出
StringBuffer类:对本身操作
  1. 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:线性结构

  1. add
  2. get(idx)
  3. set(idx)
  4. 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:

——可抛出异常 |返回元素

  1. 插入:add(e) |offer(e)
  2. 移除:remove() |poll()
  3. 检查: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两种实现

  1. 先判断hashCode()不等,相等时(冲突时)判断equals()或==是否为false
  2. hashCode()意义:让内容相同的对象有一样的hashcode,内容不同的hashcode不同
  3. 添加:add(key);重复加无效
  4. 判断:contains(key);

2.4 Map:key-value;HashMap,TreeMap(红黑树)两种实现

  1. put(key,value):加入,相同key取后面的
  2. get(key):获得value
  3. entrySet():返回Map.Entry

2.5 排序和查找

1 Arrays:对数组直接操作
  1. Arrays.asList(数组):得到一个List对象
  2. Arrays.sort(list,c):
  3. Arrays.binarySearch(list,key,c):二分查找前先排序
  4. 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 泛型:高要求

  1. <>:类后面class a,方法前面 T func(){}
  2. :T是任意一种类型

算法:遍试、枚举

for(;;){if(){}}//试遍所有可能并判断

算法:迭代

while(){x=f(x)}//不断计算直到x满足条件

算法:递归

f(n){f(n-1)}//化成子结构问题

算法:回溯

x++;if()x–;//尝试可能,不满足恢复到先前状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值