一、Object 类
java.lang.Object 是java类体系中的最顶级的,万类之组
1、toString( ) 方法
功能:当输出一个对象时,会默认调用类中toString()方法,把对象以字符串形式输出,当输出一个对象时,会默认调用类中toString()方法,把对象以字符串形式输出
代码示例:
public class Person extends Object {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
/*
重写父类中toString();
*/
@Override
public String toString() {
return "Person{" +
"name='" + this.name + '\'' +
", age=" + this.age +
'}';
}
@Override
public boolean equals(Object obj) {
if(obj==null){
return false;
}
if(this==obj){
return true;
}
if(obj instanceof Person){
Person p = (Person) obj;
return this.name.equals(p.name) && this.age == p.age;
}
return false;
}
}
public class ToStringDemo {
/*
toString()
当输出一个对象时,会默认调用类中toString()方法,把对象以字符串形式输出,
类中如果没有toString(),那么会调用父类(Object)中的toString();
public String toString() {
Object类中的默认输出类的名字和对象在内存中地址(10进制 转为16进行)
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
*/
public static void main(String[] args) {
Person p1 = new Person("张三1",20);
Person p2 = new Person("张三2",20);
System.out.println(p1);//com.ffyc.javaapi.objectdemo.Person@1b6d3586
System.out.println(p2);
}
}
2、equals( ) 方法
功能:equals( )用来比较对象中的内容是否相等
注:
- == 用于基本类型比较时,比较的是值是否相等
- ==用于引用类型比较时,比较的是两个引用的地址是否相等
- 其他的类为了比较两个对象中包含的内容是否相等,都对Object中的equals(),进行了重写,改为判断内容是否相等
代码示例:
public class TestEquals {
public static void main(String[] args) {
/*
public boolean equals(Object obj) {
return (this == obj);
}
== 用于基本类型比较时,比较的是值是否相等
==用于引用类型比较时,比较的是两个引用的地址是否相等
*/
int a = 10;
int b = 10;
System.out.println(a==b);
Person p1 = new Person("张三1",20);//凡是new出来的,内存地址肯定不同
Person p2 = new Person("张三1",20);
Person p3 = p2;
System.out.println(p1.equals(p2));
//以后如果比较两个对象的地址是否相等时,直接使用==比较即可
System.out.println(p1==p2);
System.out.println(p3==p2);
//所以其他的类为了比较两个对象中包含的内容是否相等,都对Object中的equals(),进行了重写,改为判断内容是否相等
System.out.println(p1.equals(p2));
//equals()用来比较对象中的内容是否相等
String s = new String("abc");
String s1 = new String("abc");
System.out.println(s==s1);//false
System.out.println(s1.equals(s));//true
}
}
二、Arrays 类
java.util.Arrays类用于操作数组工具类,里面定义了常见操作数组的静态方法
1、sort( ) 方法
功能:对数组默认进行升序排序
注:自定义类实现Comparable接口,重写compareTo方法,就可以来指定排序规则
代码示例:
public class Student implements Comparable<Student>{
private int num;
private String name;
public Student(int num, String name) {
this.num = num;
this.name = name;
}
@Override
public String toString() {
return "Student{" +
"num=" + num +
", name='" + name + '\'' +
'}';
}
/*
此方法是用来指定排序规则
此方法会在sort()进行调用
*/
@Override
public int compareTo(Student o) {
return this.num - o.num; // 小于0 等于0 大于0
// return this.name.compareTo(o.name);
}
}
import java.util.Arrays;
public class ArraysSort {
public static void main(String[] args) {
//int [] a = {5,2,3,4,1,6};
//Arrays.sort(a); 对整个数组默认进行升序排序
//Arrays.sort(a,0,4);//对指定区间进行排序 包含开始位置,不包含结束
//System.out.println(Arrays.toString(a));
//String[] s = {"b","a","c","d"};
//Arrays.sort(s);
//System.out.println(Arrays.toString(s));
Student s1 = new Student(101,"张三1");
Student s2 = new Student(102,"张三2");
Student s3 = new Student(103,"张三3");
Student s4 = new Student(104,"张三4");
Student[] students = new Student[4];
students[0] = s2;
students[1] = s1;
students[2] = s4;
students[3] = s3;
Arrays.sort(students);
System.out.println(Arrays.toString(students));
// System.out.println("c".compareTo("a")); 字符串比较大小 返回一个int值
}
}
2、binarySearch( ) 方法
功能:二分查找算法, 需要数组是有序,如果数组中不包含要找的key,返回负数,找到了返回元素所在的索引位置
代码示例:
import java.util.Arrays;
public class ArraysBinarySearch {
public static void main(String[] args) {
int [] a = {1,2,3,4,5,6,7};
//二分查找算法, 需要数组是有序,如果数组中不包含要找的key,返回负数,找到了返回元素所在的索引位置
int index = Arrays.binarySearch(a,8);
System.out.println(index);
//指定区间的查找 包含开始索引,到结束索引-1.
int index1 = Arrays.binarySearch(a,0,4,5);
System.out.println(index1);
}
}
3、copyOf( ) 方法
功能:数组复制
注:java中的数组在创建时,指定长度,一旦给定长度不能改变,所以要对数组进行扩容(30--->扩容40 new 40),后将原数组中的内容复制到一个指定长度的新数组中
代码示例:
public class ArraysCopyof {
public static void main(String[] args) {
/*
数组复制:
java中的数组在创建时,指定长度,一旦给定长度不能改变
30--->扩容40 new 40
将原数组中的内容复制到一个指定长度的新数组中
*/
int [] a = {1,2,3,4,5};
int[] b = Arrays.copyOf(a,10);
System.out.println(Arrays.toString(b));
}
}
4、toString( ) 方法
功能:返回指定数组内容的字符串表示形式