java学习_常用API

java_API

java文档注释

文档注释只定义在三个地方类,常量,方法。
在类上定义文档注释是用来说明这个类的设计以及其解决的问题等相关描述信息


String 常用方法:

1.char charAt(int index)
返回当前字符串给定位置的字符
2.int indexOf(String str)
给定字符串str在当前字符串中的位置,若当前字符串不含有给定的字符串时返回-1
  int indexOf(String str,int index)
从指定字符串位置开始查找字符串str的位置
  int lastIndexOf(String str)
字符串str在当前字符串最后一次出现的位置
3. int length()
   字符串长度
4. boolean startsWith(String str)/boolean  endsWith(String str)
 是否以str开头/结尾
5. String substring(int start,int end)
  字符串截取  含头不含尾
6.String toUpperCase()/String toUpperCase()
 将字符串转为大/小写
7.String trim()
 去除字符串两端的空白字符
8.String valueOf(多种类型参数(重载))
 将不同类型的数据转换为字符串
9. StringBuild 
是一个可变的字符数组。可频繁修改
append(String str)追加字符串str


/*public final class String//源代码String类的声明

字符串为不可变类,每次修改String都会重新创建一个String对象*/

10.正则表达式
 规则表达式。用来操作字符串的特殊表达式。检索、替换那些符合规则的文本
字符串支持正则表达式相关方法:
boolean matches(String regex) regex表示正则表达式
字符串是否匹配该正则表达式
String replaceAll(String regex,String str)
将当前字符串满足正则表达式的部分替换为给定的字符串
Sting split(String regex)
将字符串按照满足正则表达式的部分 进行拆分




包装类


java有8个基本数据类型,不是引用类型,不具面向对象的特性
不能直接参与面向对象的开发,为此java对这8个类分别提供了对应的
包装类来解决问题。



Integer i = Integer.valueOf(45);
Double d = Double.valueOf(123.12);


数字类型的包装类提供了两个常量
MAX_VALUE MIN_VALUE


parseXXX(String str)
将字符串转换猜成对应的基本数据类型
int a = Integer.parseInt("125");
double d = Double.parseDouble("123.123");



自动拆装箱



自动拆箱
int d  = new Integer(123);
//编译器会补充代码到class文件中 int d = new Integer(123).intValue();
自动装箱
Integer i = 32;
//编译器会补充代码到class文件中 Integer i = Integer.valueOf(32);




Date 日期


Date date = new Date();//显示当前时间
System.out.println(date);//Sat Aug 26 18:00:32 CST 2017
long time = date.getTime();
//获取当前对象内部维护的毫秒值从1970.1.1 00:00:00 到此时经过的毫秒数


Date与String按照指定的日期格式互相转换
日期->字符串
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String str = sdf.format(date);
System.out.println(str);// 2017-08-26 10:24:00
字符串-> 日期
String str = "2017-08-26 10:24:00";
SimpleDateFormat sdf = new Si
mpleDateFormat("yyyy-MM-dd HH:mm");
Date date = sdf.parse(str);


Calendar 日历
Calendar c = Calendar.getInstance();
//获得一个当前系统所在地区适用的实现类

Date getTime()//获得当前Date对象
void setTime(Date date)//设置当前Calendar表示的日期

get(int field)获取当前日历所表示的日期分量,年/月/日/时/分/秒  星期
参数为Calendar常量
Calendar.YEAR   //年
Calendar.MONTH  //月
Calendar.DAY_OF_MONTH //日
Calendar.HOUR_OF_DAY  //时  24小时制
Calendar.MINUTE       //分
Calendar.SECOND       //秒  

Calendar.DAY_OF_YEAR  //一年的第几天
Calendar.DAY_OF_WEEK  //一周中的第几天  (周日为第一天)

set(int field,int value)设置时间分量,field参数见上
可以设置时间分量对应的值超过其范围,Calendar会自动进位

add(int field,int value)//给当前时间分量加值,值为负数则减去



集合  Collection

与数组功能相似。顶级接口,其下两个常见接口:
List:可重复集,且有序。可通过下标操作元素
实现类:ArrayList:
              LinkedList
set:不可重复集合。元素是否重合是根据自身equals比较的结果判断
 实现类:HashSet



集合方法 
add()         //添加元素
size()    //当前集合的元素个数 
isEmpty()  //判断当前集合是否为空
contains(E e) //判断当前集合是否包含给定元素,根据集合元素equals比较的结果
remove(E e)   //删除指定元素
add()         //添加元素。只存放引用类型的元素,存放的是元素的地址。
add(Collection c)//添加其他集合中的元素


集合当中的泛型,用来规定集合中的元素类型
Collection<String> c = new ArrayList<String>(); 
List方法
add()//添加
get(int index)//获取元素
add(int index,Object obj) //差入元素
remove(Object obj)      //删除元素
set(int index,Object obj) //替换集合中的元素,并返回被替换元素
subList(int index1,int index2)//获取List子集



遍历集合元素 迭代器模式
Iterator it = c.iteraor();//获取集合的迭代器
while(it.hasNext()){
         it.next()//获取下一个元素
          it.remove();//删除元素
          //   c.remove()   //在使用迭代器遍历元素的过程中,不能
             //通过集合的方法增删元素否则会引发迭代器遍历集合的异常
}


数组集合互转
数组->集合
String[] array = Arrays.asList();
List list = Arrays.asList(array);
集合->数组
Collection<String> c = new ArrayList<String>();
String[] array = c.toArray(new String[c.size()]);


集合的排序
Collections.sort(list);
字符串排序按照字符串编码顺序排。
sort方法要求集合元素必须实现Comparable接口,否则无法排序。
sort的重载方法,自定义一个比较器。
 Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int length = o1.length();
int length2 = o2.length();
return length-length2;
}
  }

);

MAP  
map要求不重复,(e元素的quals比较)


put(K k,V v)   //增加元素
get(K k)       //获取元素
remove(K k)    //移除元素
map的遍历
  遍历所有key        Set<String> keySet = map.keySet();
  遍历所有value      Collection<Integer> values = map.values();
  遍历所有键值对      Set<Entry<key,value>> entrySet = map.entrySet();  
  
影响散列表查询性能的一个因素:产生链表。
链表产生原因:key的hashCode值一样,但是equals比较不为true。
hashcode值一样时,在Map内部数组的位置相同,但是key若不同,
那么就会在该位置产生一个链表。
遍历链表检索数据会降低HashMap检索性能,所以要避免。
 
因此在API文档中也有说明对equals与hashcode的重写要求:
 1:成对重写,即:当重写一个类的equals方法时,就应当连同重写 hashcode方法
 2:一致性:即:当两个对象equals比较为true时, hashcode方法返回的数字应当相等。
 反之,两个对象hashcode相等,equals比较应当为true.f否则,会在HashMap中产生链表,影响查询性能
 3:稳定性:即:当一个对象参与equals比较的属性的值没有发生改变的前提下,
 多次调用hashcode返回的数字应当不变




Queue  队列
   可以存放一组数据,遵循先进先出的原则
    Queue<String> queue = new LinkedList<String>();
offer("");//入队操作,在对尾添加元素
poll("");//出队操作,取出该元素后从队列中删除、
peek(""); //引用队首元素,元素还在队列中


Deque 双端队列 //该接口继承Queue,两端都可以进出的队列
    
deque.offerFirst("six");  //两端都可以进
deque.offerLast("seven");
       
       deque.pollLast();    //两端都可以出
deque.poll();

Stack 栈  使用双端队列实现栈结构 
          当仅调用双端队列的一端进出队方法时就实现了栈操作
          双端队列为栈提供了相应方法:
    push //压栈  
    pop //出栈





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值