常用类api笔记
目录
Object类
1. hashCOde()方法
格式:public int hashCode()
概述:返回该对象的哈希码值
注意点:要区分HashMap中的hashCode重写
- 没重写时是根据地址值转换成一个值;HashMap的重写是根据对象的属性,进行计算成一个值
2. getClass()方法
格式:public final Class<?> getClass()
概述: 获得Class对象,返回一个当前运行时类的Class对象
注意点:获得class,用于反射之类的
3. toString()方法
格式:public String toString()
概述:返回给对象的字符串表示
注意点:object中的tostring是返回地址值,String中重写了tostring,所以才返回字符串,所以建议所有子类都重写该方法
4. equals()方法
格式:public boolean equals(Object obj)
概述:比较两个对象是否相等
注意点:
- 面试题:equals()和“ == ”的区别
- equals本质就是==
- 在基本数据类型中,等等号比较的值
- 在引用数据类型中,等号比较的是地址值是否相同;equals在引用对象中比较内容值,因为被重写了。如String
String类
①String 必须要全会
- length() ——返回字符串长度
- charAt(Int index) ——参数是Int index,返回该所索引下的字符
返回的是char
- indexOf(char ch) ——返回指定位置的字符在当前字符串出现的第一次索引 返回的是
int index
- indexOf(char ch,Int index) ——返回在index索引后第一次出现的字符
- indexOf(String str) ——返回这个字符串str在当前字符串第一次出现的第一个位置的索引
- indexOf(String str,Int index) ——返回这个字符串str在index索引后第一次出现的位置的索引
- substring(int index) ——截取从index开始到末尾,返回一个新的字符串
- substring(int start,int end) ——截取从start到end的字符串,并返回
- contains(String str) ——是否包含str字符串,返回boolen
- trim() ——去掉字符串前后空格
- toUpperCase() ——转大写
- toLowerCase ——转小写
- statsWith(str) ——判断是否是以str开头 返回boolen
- statsWith(str,index) ——从index索引开始,判断是否以str开头 返回boolen
- endsWith(str) ——判断是否str结尾 返回boolen
- toCharArray() ——转变成char数组
StringBuffer类和StringBuilder类
②StringBuffer
-
append(基本数据类型,Object…) ——末尾添加
-
insert(位置,基本数据/Object)——在指定位置插入数据
-
delete(int start,int end) ——删除一段
-
deleteCharAt(int index) ——删除指定索引位置的元素
-
replace(index1,index2,替换的字符串str) ——左闭右开,替换从index1到index2(取不到2)的位置上的数据换成 str
stringBuffer.replace(1,3,"like"); //HolloWorld --> HlikeloWorld
-
reverse() ——倒转字符串
除了上面的增删改,还有
string的查charAt(),长度length(),indexOf(str,index),substring()
③StringBuilder
与stringbuffer一样
Arrays 数组工具类
- toString ——直接遍历数组,只能遍历数组
- sort ——排序
- binarySearch(int[] a,int key) 二分查找,查找前必须排序
- Arrays.asList({“小明”,1,new Data()}) //转成一个list
扩展:
- fill(数组,value) ——将数组内的所有值用value填充
- copyOf(数组1,数组2) ——1复制给2
Math
1)三角函数方法
public static double sin(double a)//正弦
public static double cos(double a)//余弦
public static double tan(double a)//正切
public static double asin(double a)//反正弦
public static double acos(double a)//反余弦
public static double atan(double a)//反正切
public static double toRadians(double angdeg)//将角度转换为弧度
public static double toDegrees(double angrad)//将弧度转换为角度
2)指数函数方法
public static double exp(double a)//e的a次方
public static double log(double a)//lna
public static double log10(double a)//底数为10的对数
public static double sqrt(double a)//a的平方根
public static double cbrt(double a)//a的立方根
public static double pow(double a,double b)//a的b次方
3)取整函数方法
public static double ceil(double a)//大于等于参数的最小整数
public static double floor(double a)//小于等于参数的最大整数
public static double rint(double a)//与参数最接近的整数(若相等,取偶数)
public static int round(float a)//加上0.5后与参数最接近的整数
4)取最大值、最小值、绝对值函数方法
public static double max(double a,double b)//a、b的最大值
public static double min(double a,double b)//a、b的最小值
public static double abs(double a)//绝对值
Random类
1)Math.random()方法
Math.random()//产生[0,1)的double数
(int)(Math.random()*100)//产生[0,100)的int数
50+(int)(Math.random()*100)//产生[50,150)的int数
(char)('a'+Math.random()*('z'-'a'+1))//产生a~z之间的字符
(char)(cha1+Math.random()*(cha2-cha1+1))//产生cha1~cha2之间的字符
2)Random类
除了Math.random()方法,Java还提供了一种可以获取随机数的方式,那就是java.util.Random类。
public int nextInt()
public int nextInt(int n)
public double nextDouble()
......
集合方法总结
Collection接口
抽象方法: 意味着他的子接口List、Set都有这些方法
-
size(); //返回集合中元素的个数,并不是集合的长度或者大小
-
add(); //向集合中添加
-
addAll(Collection coll); //将行参coll中包含的所有元素添加到当前集合中
-
remove(Object obj) //删除一个元素,删除成功返回true,否则返回false
-
removeAll(Collection coll); //删除coll集合中的全部
-
contains(obj); //返回true,判断集合中是否有obj
-
containsAll(Collection coll); //判断当前集合是否包含coll中所有的元素
-
retainAll(Collection coll); //取交集
-
equals(object obj); //判断两个集合中是否完全相同
-
isEmpty(); //判断集合是否为空
-
clear(): //清空集合元素
-
hashCode() //计算hashCode
-
toArray() //将集合转化为数组
-
iterator() //返回一个迭代器
-
iterator.hasNext(); //判断下一个位置是否不为空 起始位置在-1位置
-
iterator.next(); //下标下移,然后返回该位置上的数
-
总结:增删改查只有增和删,因为是父接口,list和set中的改和查不同,所以由各自接口去定制
遍历集合方式
- for循环
- for each循环 底层是迭代器
- 迭代器 iterator
List接口
相当于在Collection的基础上新增了方法,由于list是动态数组的结构,查询方便,
-
set(index, obj) ; //将位置为index更改为obj元素 改
-
get(index); //查 根据索引index返回位置的元素
-
add(int index,obj); //插入到指定位置上
-
indexof(obj); //返回当前对象在集合中首次出现的位置,找不到返回-1
-
LastIndexOf(obj); //返回obj元素在集合中最后出现的位置
-
subList(int fromIndex,int toIndex); //获取从fromIndex到toIndex截取左闭右开的集合
总结:list中有提供remove方法,但是参数一个是索引,一个是obj,优先索引删除
Set接口
set基本没有新增,使用Collection的方法
hashset中的add有个特性,当添加的值以及在容器中时,会返回false。如果添加的值不在容器中的话,返回true;
Map接口
-
put(entry) //添加
- put添加有个特性,当添加的值的key不重复,即不与容器中的key重复,返回null,否则返回该添加值的key;
- value相不相同都不影响这个返回类型
-
putAll(map) //添加另一个map
-
clear() //把map中的值全部删除
-
containsKey(Object key); //是否包含key为key的元素,返回boolen
-
containsValue(Object value); //有着返回true
-
equals(obj) //判断两个map集合是否相同
-
remove(obj) // 删除key为 obj的元素
-
isEmpty() //是否为空
-
size() //个数
-
values() //返回手游的value到一个collection集合
-
keySet() //返回map集合中的key,放到set中
-
get(key) //通过key值,获取value
-
entrySet() //返回map到一个set集合中,以key=value的方式返回到set中
遍历Map方式
四种方式
1、for循环
2、迭代器循环
3、keySet循环
- 就是用keySet方法,将Map中的全部key放到一个set中,然后通过map.get(key)方法拿到value
- 效率较低推荐entrySet()
4、entrySet()迭代
- entrySet就是将map中的entry遍历出来放到set中,再通过entry.getkey()和entry.getvalue()获取值