一.类数组
1.定义格式:
类名[] 数组名 = new 类名(长度);
2.注意事项:
和普通数组一样长度一经确立不可改变
二.集合类 对象数组ArrayList
1.ArrayList定义
- ArrayList集合类的长度可以发生改变
- 对于ArrayList来说,有一个尖括号表示泛型,也就是装在集合中的所有元素都是统一的类型
示例定义代码:
ArrayList<String> new1 = new ArrayList<>();
//从jdk1.7 开始,右侧的尖括号可以不写内容,但是<>是要写的
System.out.println(new1); //输出[]即内容,不是地址
//对于ArrayList集合来说,直接打印得到的不是地址值而是内容,若内容为空为[]
2.常用方法
(1)public boolean add(E e)
用处:向集合当中添加元素,参数的类型与泛型一致
boolean success = new1.add("OK");
new1.add("OKK");
System.out.println(new1);
System.out.println(success);
要点:该方法返回一个bool值,用于判断是否成功添加
(2)public E get(int index)
从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素
System.out.println(new1.get(0));
(3)public E remove(int index)
从集合当中删除元素,参数是索引编号,返回值就是便删除的元素
String remo1 = new1.remove(1);
System.out.println(remo1);
(4)public int size()
获取尺寸长度,返回值是包含元素个数
int size = new1.size();
System.out.println(size);
3.包装类的使用
由于ArrayList存储的都是地址值,而基本类型没有地址值所以无法存储基本类型变量
//ArrayList<int> new2 = new ArrayList<>(); 会报错,不能是基本类型
所以需要使用基本类型的包装类,位于java.lang包下,不需要导包
- 基本类型 对应包装类
- byte-------->Byte
- short------->Short
- int---------->Integer
- long-------->Long
- float-------->Float
- double----->Double
- char-------->Character
- boolean----->Boolean
示例代码:
ArrayList<Integer> new2 = new ArrayList<>();
new2.add(100);
new2.add(200);
int num2 = new2.get(1); //可以使用基本类型进行接收
//从jdk1.5+开始,支持自动转换
三.字符串
(1)定义:Java中的所有字符串字面值都作为String类的实例实现,也即程序当中所有双引号字符串都是String类的对象
- 1.String字符串的内容一经创建后永不可变
- 2.字符串可以共享使用
- 3.字符串效果上相当于char[]字符数组
(2)创建字符串的三种构造方法加一种直接创建
1.创建空白字符串:public String();
2.根据字符数组创建对应的字符串:public String(char[] array);
char[] array = {'a','b','c'};
String str2 = new String(array);
3.根据字节数组创建对应的字符串:public String(byte[] array);
byte[] array1 = {97,98,99};
String str3 = new String(array1);
四.常量池
1.一个字符串对象在堆中创建后,然后指向一个byte数组存储字符
2.程序当中直接写上的双引号字符串,就在字符串常量池中,而通过数组创建的字符串并不在常量池当中
3.对于引用类型来说,==比较的是地址值比较
String str1A = "abc";
String str1B = "abc";
char[] charArray = {'a','b','c'};
System.out.println(str1A == str1B);
4.字符串内容比较:
1.public boolean equals(Object obj):参数可以是任何对象,只有参数是一个字符串并且内容相同才会返回true
要点:
- 具有对称型
- 推荐:“abc”.equals(str) 不推荐:str.equals(“abc”)
- 若str为null,那么前者会返回false,后者会报错,空指针异常,NullPointerException
示例代码:
String str2A = "Hello";
String str2B = "Hello";
char[] charArray2 = {'H','e','l','l','o'};
String str2C = new String(charArray2);
System.out.println(str2A.equals(str2B)); //true
System.out.println(str2A.equals(str2C)); //true
2.public boolean equalsIgnoreCase(String str);
- 忽略大小写进行比较,只区分英文大小写
五.字符串常用方法
1.获取方法:
(1)public int length(); 取长度
System.out.println(str1A.length());
(2)public String concat(String str); 将当前字符串与参数字符串拼接成新字符串并返回
(3)public char charAt(int index); 获取指定索引位置的单个字符
(4)public int indexOf(String str); 查找参数字符串在目标字符串的首次出现的索引位置,若无则返回-1
2.截取方法
(1)public String substring(int index); 截取从参数位置一直到字符串末尾,返回新字符串
String str3A = "HelloWorld";
System.out.println(str3A.substring(5));
(2)public String substring(int begin,int end); 截取从参数begin到end的字符串 [begin,end)
System.out.println(str3A.substring(1,7));
3.转换方法
(1)public char[] toCharArray(); 将当前字符串拆分成字符数组作为返回值
char[] charArray5 = str3A.toCharArray();
System.out.println(charArray5.length); //没有括号
(2)public byte[] getBytes(); 获得当前字符串最底层的字节数组
(3)public String replace(CharSequence oldString,CharSequence newString);
-
将所有的老字符串替换成为新的字符串,返回替换后的新字符串
-
CharSequence意思为可以接受字符串类型
String str4A = str3A.replace(“o”,"*");
System.out.println(str4A);
4.分割方法
public String[] split(String regex) 按照参数将字符串分割成几个部分
String str5A = "aaa,bbb,ccc";
String[] strArray1 = str5A.split(",");
for(int i = 1;i<strArray1.length;i++){ //长度不用加括号
System.out.println(strArray1[i]);
}
split方法的参数其实是个正则表达式,如果按照英文句点".“区分一定要写成”\."
六.类数学方法
在包java.lang中,所以不需要导入
示例代码:
System.out.println(Math.abs(-2)); //abs()方法输出绝对值
System.out.println(Math.ceil(1.5)); //ceil()向上取整
System.out.println(Math.floor(1.5)); //向下取整
System.out.println(Math.round(1.5)); //四舍五入
值:
System.out.println(Math.ceil(1.5)); //ceil()向上取整
System.out.println(Math.floor(1.5)); //向下取整
System.out.println(Math.round(1.5)); //四舍五入