【天梯赛】Java中常见的方法(持续更新中ing)
🍀Java中常见的方法
- 🌺Math类
-
-
- 常量
- 取绝对值
- 取最大值、最小值
- 开平方
- 取次幂
-
- 🍁String类
-
-
- 声明(创建)一个String
- int转String
- 常用到的方法
-
- 🌳StringBuffer类
-
-
- 反转字符串
-
- 🌻Integer类
-
-
- 反转整数
- 数制转换
- String转int
-
- 🌷Arrays类
-
-
- 声明(创建)一个数组
- 复制数组
- 检查数组是否包含某个值
- 二分查找
- 给数组排序
-
- 🍀Set集合与List集合
🌺Math类
常量
static double
PI
double
值比任何其他的更接近 pi ,圆周长与其直径的比率。
static double
E
double
值比其他任何一个都更接近 e ,自然对数的基数。
取绝对值
static double abs(double a) 返回值为 double绝对值。
取最大值、最小值
static double max(double a, double b) 返回两个 double值中的较大值。
static double min(double a, double b) 返回两个 double的较小值
开平方
static double sqrt(double a) 返回的正确舍入正平方根 double值。
取次幂
static double pow(double a, double b) 将第一个参数的值返回到第二个参数的幂。
🍁String类
声明(创建)一个String
String string;String string2="1234";String string3=new String();String string4 =new String("1234");
int转String
valueOf(int i) 返回 int参数的字符串 int形式。
int b=1234;String bString=String.valueOf(b);System.out.println(bString.charAt(2));
常用到的方法
charAt(int index) 返回 char指定索引处的值。
indexOf(int ch, int fromIndex) 返回指定字符第一次出现的字符串内的索引,以指定的索引开始搜索。
indexOf(String str) 返回指定子字符串第一次出现的字符串内的索引。
indexOf(String str, int fromIndex) 返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。
lastIndexOf(int ch) 返回指定字符的最后一次出现的字符串中的索引。
lastIndexOf(int ch, int fromIndex) 返回指定字符的最后一次出现的字符串中的索引,从指定的索引开始向后搜索。
lastIndexOf(String str, int fromIndex) 返回指定子字符串的最后一次出现的字符串中的索引,从指定索引开始向后搜索。
replace(CharSequence target, CharSequence replacement) 将与字面目标序列匹配的字符串的每个子字符串替换为指定的字面替换序列。
split(String regex) 将此字符串分割为给定的 regular expression的匹配。
startsWith(String prefix, int toffset) 测试在指定索引处开始的此字符串的子字符串是否以指定的前缀开头
toCharArray() 将此字符串转换为新的字符数组。
trim() 返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。
🌳StringBuffer类
反转字符串
reverse() 导致该字符序列被序列的相反代替。
String string="1234";StringBuffer stringBuffer=new StringBuffer(string);stringBuffer = stringBuffer.reverse();System.out.println(stringBuffer);//4321
🌻Integer类
反转整数
reverse(int i) 返回由指定的二进制补码表示反转位的顺序而获得的值 int值。
int a=1234;int b=Integer.reverse(a);System.out.println(a+1);//1235
数制转换
toBinaryString(int i) 在基数2中返回整数参数的字符串表示形式为无符号整数。
toHexString(int i) 返回整数参数的字符串表示形式,作为16位中的无符号整数。
toOctalString(int i) 在基数8中返回整数参数的字符串表示形式为无符号整数。
int a=15;System.out.println(Integer.toBinaryString(a));//1111System.out.println(Integer.toHexString(a));//fSystem.out.println(Integer.toOctalString(a));//17
String转int
valueOf(String s) 返回一个 Integer对象,保存指定的值为 String 。
String string="1234";int a;a =Integer.valueOf(string);System.out.println(a+1);//1235
🌷Arrays类
声明(创建)一个数组
String []aStrings;String []aStrings2= {"1","2","3"};String []aStrings3=new String[3];int []a;int []aa= {1,2,3,4};int []aaa=new int[5];char []c;char []cc= {'1','2','3'};char []ccc=new char[3];
复制数组
int []a; int []aa= {1,2,3,4}; int []aaa=new int[5]; aaa=Arrays.copyOf(aa,3); for(int i:aaa) { System.out.print(i+" ");//1 2 3
检查数组是否包含某个值
Arrays.asList(T).contains();asList(T... a) 返回由指定数组支持的固定大小的列表。
实例代码:String []aStrings2= {"1","2","3"}; if(Arrays.asList(aStrings2).contains("2")) { System.out.println("Contains");//Contains }else { System.out.println("not Contains"); }
二分查找
这是java自带的二分查找方法,返回的是指定值在数组中的位置binarySearch(int[] a, int key) 使用二叉搜索算法搜索指定的int数组的指定值
💕💕💕 源码赏析:// Like public version, but without range checks. private static int binarySearch0(char[] a, int fromIndex, int toIndex, char key) { int low = fromIndex; int high = toIndex - 1; while (low <= high) { int mid = (low + high) >>> 1; char midVal = a[mid]; if (midVal < key) low = mid + 1; else if (midVal > key) high = mid - 1; else return mid; // key found } return -(low + 1); // key not found. }
实例代码: 能找到返回指定值的数组下标 char []cc= {'1','2','3'}; int index = Arrays.binarySearch(cc, '2'); System.out.println(index);//1不能找到则返回指定值应该插入到数组中的位置的相反数 注意并不是插入到数组中的下标,如'6'查不到,就返回-4index = Arrays.binarySearch(cc, '6');System.out.println(index);//-4
给数组排序
sort(int[] a) 按照数字顺序排列指定的数组。
示例代码:int []a= {1,6,3,54,76,2}; //Arrays.parallelSort(a);大型数据集用parallelSort()性能更好 Arrays.sort(a); for(int i:a) { System.out.print(i+" ");//1 2 3 6 54 76 }
🍀Set集合与List集合
✔List集合可以保存重复的数据,但是Set集合不可以
✔List集合按照存储顺序保存的,Set集合中HashSet不是按照存储的顺序保存,具有不确定性;
HashSet:底层数据结构是哈希表,线程不安全,效率高,允许存储null值,元素无序元素的唯一性是靠重写hashCode()方法和equals()方法。不重写则无法保证。Integer 和String 默认重写了hashCode()和equals()方法LinkedHashSet:底层数据结构是链表和哈希表,线程不安全,效率高,元素有序且唯一**(有序是指键盘输入的顺序)**TreeSet:底层数据结构是二叉树,线程不安全,效率高,元素有序且唯一。不允许null元素。TreeSet可以对元素进行排序,排序方式有自然排序和比较器排序,具体取决于使用的构造方法。
参考资料
java集合:set及其常用子类_浔者的博客-CSDN博客_set子类