Java常用API(Random,ArraryList等)
一.Random
Random r=new Random();
int num=r.nextInt();
System.out.println(num);
int num=r.nextInt(3);//[0,2) 0,1,2 左闭右开
二.ArrayList
1.常用方法:ArrayList.add() ArrayList.get(index) ArrayList.remove() ArrayList.size()
2.泛型只能是引用类型,不能为基本类型。如果用的话,要转换为他的包装类。
基本类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Charactor
boolean Boolean
public static void main(String[] args) {
ArrayList<Person> list=new ArrayList<>();
Person one=new Person("张三",11);
Person two=new Person("李四",12);
Person three=new Person("王五",13);
Person four=new Person("啊啊",14);
list.add(one);
list.add(two);
list.add(three);
list.add(four);
}
三.字符串String
1.字符串的内容永远不可变
2.字符串相当于char[]字符数组,但是底层原理是byte[]字节数组
//使用空参构造
String str=new String();
System.out.println("第一"+str);
//使用字符数组构造字符串
char [] cha={'a','b'};
String str2=new String(cha);
System.out.println("第二"+str2);//ab
//使用字节数组创建字符串
byte [] by={97,98,99};
String str3=new String(by);
System.out.println("第三"+str3);//abc
//直接创建 也是字符串的对象
String str4="sadasdsad as";
System.out.println("第四"+str4); //sadasdsad as
3.字符串的常量池
字符串中直接写上双引号的字符串,就在字符串的常量池当中
对于基本类型来说,==是进行数值的比较
对于引用类型来说,==是进行地址值的比较
String str1="abc";
String str2="abc";
char[] chara={'a','b','c'};
String str3=new String(chara);
System.out.println(str1==str2); //true
System.out.println(str2==str3);//false
System.out.println(str1==str3);//false
3.常用方法str.length(),str.equals(),
String str="abc Hello word!";
//索引字符串
char ch=str.charAt(1);
System.out.println(ch); //输出b
int index=str.indexOf("c");
System.out.println(index);//2
//转换为字符数组
char[] cah=str.toCharArray();
System.out.println(cah);//abc Hello word!
System.out.println(cah[0]);//a
System.out.println(cah.length);//15
//转化为字节数组
byte [] byt="abc".getBytes();
System.out.println(byt);//地址值
System.out.println(byt[0]);//97
//替换字符串
String strr=str.replace("word","world");
System.out.println(strr);//abc Hello world!
//截取字符串
String str1=str.substring(5);
System.out.println(str1); //ello word!
String str2=str.substring(5,7);
System.out.println(str2);//el
//下面两种写法字符串内容并没有改变,而是两个字符串
//打印出stra不同是因为第二个字符串的地址给了stra
String stra="abc";
stra="123";
//分割字符串
String Strsl="aaa,bbb,ccc";
String [] strary=Strsl.split(",");
for (int i = 0; i < strary.length; i++) {
System.out.println(strary[i]);// aaa bbb ccc
四.静态static
注意事项:静态方法不能直接非静态成员变量,因为在内存中现有的静态内容,后有的非静态内容。“后人知道先人,先人不知道后人”
静态方法中不能使用this
静态代码块优先于构造方法执行
public class static01 {
static {
System.out.println("静态代码快执行");
}
}
Arrays静态方法练习
int [] arr={10,20,30};
//int[]数组按照默认格式变成字符串
String intStr= Arrays.toString(arr);
System.out.println(intStr);//[10, 20, 30]
//sort 自动排序
int [] arr1={20,10,30};
Arrays.sort(arr1);
String ints=Arrays.toString(arr1);
System.out.println(ints);//[10, 20, 30]
五.Math类
常用方法:取绝对值abs(),向上取整ceil(),向下取整floor(),四舍五入round()
//取绝对值
System.out.println(Math.abs(-3.14));//3.14
//向上取整
System.out.println(Math.ceil(3.14));//4.0
System.out.println(Math.ceil(3.0));//3.0
//向下取整
System.out.println(Math.floor(3.14));//3.0
//四舍五入 不带小数点
System.out.println(Math.round(3.14));//3
System.out.println(Math.round(3.64));//4
//Math.PI
System.out.println(Math.round(Math.PI));//3