Arrays类概述
Java针对数组的操作,给我们提供了一个工具类Arrays,此类包含用来操作的各种方法,比如排序和搜索。
成员方法
如下代码体现
import java.util.Arrays;
public class demo {
public static void main(String[] args) {
// public static String toString(int[] a) 打印数组
int[] ints = {21, 84, 56, 79, 45};
String s = Arrays.toString(ints);
System.out.println(s);
// public static void sort(int[] a) 数组排序
Arrays.sort(ints);
System.out.println(Arrays.toString(ints));
// public static int binarySearch(int[] a,int key) 二分查找,前提是数组有序
int i = Arrays.binarySearch(ints, 84);
System.out.println(i);
// static boolean equals(int[] a, int[] a2) 比较两个数组中的元素,是否一样
int[] ints1 = {21, 84, 56, 79, 45};
boolean equals = ints.equals(ints1);
System.out.println(equals);
// static int[] copyOf(int[] original, int newLength) 复制旧数组中的元素到一个新的数组中,新的数组长度是newLength 从0开始复制旧数组
int[] ints2 = Arrays.copyOf(ints, 3);
System.out.println(Arrays.toString(ints2));
// static int[] copyOfRange(int[] original, int from, int to) 复制旧数组中的指定范围间的几个元素到新数组中
int[] ints3 = Arrays.copyOfRange(ints, 2, 4);
System.out.println(Arrays.toString(ints3));
}
}
运行结果:
注意:原数组已经改为了有序的数组。
基本类型包装类的概述
为了对基本数据类型进行更多的操作,更方便的操作,java就针对每一种基本数据类型提供了对应的类类型。
基本类型-----包装类
byte ---------- Byte
short--------- Short
int------------- Integer
long---------- Long
float---------- Float
double------- Double
char--------- Character
boolean ----Boolean
Integer类
Integer 类在对象中包装了一个基本类型 int 的值,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。
构造方法
public class demo {
public static void main(String[] args) {
// public Integer(int value)构造一个新分配的 Integer 对象,它表示指定的 int 值。
Integer integer = new Integer(123);
System.out.println(integer);
// public Integer(String s)构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。
Integer integer1 = new Integer("48");//只能给字面上是数字的字符串封装。
System.out.println(integer1);
}
}
运行结果:
int 类型和 String 类型之间互相转换
public class demo {
public static void main(String[] args) {
//int--->String
int num = 100;
//方式1
String s = num + "";
System.out.println(s);
//方式2
String s1 = String.valueOf(num);
System.out.println(s1);
//方式3
String s2 = new Integer(num).toString();
System.out.println(s2);
System.out.println("-------------------");
//String--->int
String str = "123";
//方式1
Integer integer = new Integer(str);
int i = integer.intValue();//将包装类型转换成它对应的基本类型
System.out.println(i);
//方式2
int i1 = Integer.parseInt(str);
System.out.println(i1);
}
}
运行结果:
自动拆装箱
JDK1.5之后有的自动拆装箱
自动装箱:将基本类型自动转换成他所对应的包装类型
自动拆箱:将包装类型自动转换成他所对应的基本类型
public class demo {
public static void main(String[] args) {
Integer integer = new Integer(20);
Integer integer1 = new Integer(200);
//自动拆箱
int num2 = integer + integer1;
//手动拆箱
int i = integer.intValue();
int i1 = integer1.intValue();
int num = i + i1;
System.out.println(num);
//自动装箱
int aa = 200;
Integer integer2 = aa;
//手动装箱
Integer integer3 = Integer.valueOf(200);
}
}
equals方法
Integer类重写了equals方法比值是否相同
如下代码体现
public class demo {
public static void main(String[] args) {
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);//false
System.out.println(i1.equals(i2));//true
System.out.println("-----------");
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);//false
System.out.println(i3.equals(i4));//true
System.out.println("-----------");
Integer i5 = 128; //自动装箱
Integer i6 = 128;
System.out.println(i5 == i6); //false
System.out.println(i5.equals(i6)); //true
System.out.println("-----------");
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8); //true
Integer i5 = 128; //自动装箱
Integer i6 = 128;
Integer.valueOf(128);
System.out.println(i5 == i6); //false
//没有超过一个字节的范围
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8); //false true
}
}