欢迎访问宙启技术站
智能推送

学习如何使用Java的数组函数:sort、binarySearch和forEach

发布时间:2023-06-25 04:45:36

Java的数组函数被广泛使用,可以方便地对数组进行排序、查找和遍历等操作。本文将介绍如何使用Java的数组函数:sort、binarySearch和forEach,以帮助读者更好地掌握这些有用的函数。

sort函数

Java的sort函数可以对数组进行排序操作。sort函数有两个重载方法,一个是对原始类型数组进行排序,另一个是对对象数组进行排序。下面是对原始类型数组进行排序的示例。

int[] arr = { 3, 2, 5, 1, 4 };
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++) {
   System.out.print(arr[i] + " ");
}

运行结果:

1 2 3 4 5 

上述代码中,我们使用Arrays类的sort方法对数组进行排序。该方法只需要传入待排序的数组即可,该方法将改变原始数组。

除了原始类型数组外,我们还可以对对象数组进行排序。假设现在我们有一个Student类,该类包含id和name属性,我们可以按照id的大小对Student对象数组进行排序。

class Student {
   int id;
   String name;

   Student(int id, String name) {
      this.id = id;
      this.name = name;
   }

   public int getId() {
      return id;
   }

   public String getName() {
      return name;
   }
}

Student[] students = {
   new Student(3, "Tom"),
   new Student(1, "Mary"),
   new Student(2, "John")
};

Arrays.sort(students, Comparator.comparing(Student::getId));
for (int i = 0; i < students.length; i++) {
   System.out.println(students[i].getName() + " " + students[i].getId());
}

运行结果:

Mary 1
John 2
Tom 3

上述代码中,我们使用Comparator.comparing静态方法创建一个按照Student的id属性进行比较的Comparator对象。然后使用该Comparator对数组进行排序。

binarySearch函数

Java的binarySearch函数可以在一个已经排序的数组中查找指定的元素。如果查找到了该元素,则返回其索引位置,如果没有找到,则返回负数。下面是对已经排序的数组进行二分查找的示例。

int[] arr = { 1, 2, 3, 4, 5 };
int index = Arrays.binarySearch(arr, 3);
System.out.println(index);

运行结果:

2

上述代码中,我们使用Arrays类的binarySearch方法对已经排序的数组进行查找。该方法需要传入待查找的数组和要查找的元素,返回该元素在数组中的索引位置。

需要注意的是,binarySearch方法只能在一个已经排序的数组中进行查找,否则它将不能返回正确的结果。

forEach函数

Java的forEach函数可以对数组进行遍历操作。forEach函数有两个重载方法,一个是对原始类型数组进行遍历,另一个是对对象数组进行遍历。下面是对原始类型数组进行遍历的示例。

int[] arr = { 1, 2, 3, 4, 5 };
Arrays.stream(arr).forEach(System.out::println);

运行结果:

1
2
3
4
5

上述代码中,我们使用Arrays类的stream方法将数组转换为一个流对象,然后对该流对象进行遍历操作。在遍历过程中,我们使用了System.out::println方法引用,它会将每个元素输出到控制台。

除了原始类型数组外,我们还可以对对象数组进行遍历。假设现在我们有一个Student类,该类包含id和name属性,我们可以使用forEach函数遍历Student对象数组。

class Student {
   int id;
   String name;

   Student(int id, String name) {
      this.id = id;
      this.name = name;
   }

   public int getId() {
      return id;
   }

   public String getName() {
      return name;
   }
}

Student[] students = {
   new Student(1, "Tom"),
   new Student(2, "Mary"),
   new Student(3, "John")
};

Arrays.stream(students).forEach(s ->
   System.out.println(s.getName() + " " + s.getId()));

运行结果:

Tom 1
Mary 2
John 3

上述代码中,我们使用了Lambda表达式作为遍历Student对象数组的方法。在遍历过程中,我们将每个Student对象的name和id属性输出到控制台。

总结

Java的数组函数非常强大,它们可以方便地对数组进行排序、查找和遍历等操作。对于经常需要操作数组的开发者来说,这些函数可以帮助他们更快速地完成任务。希望本文能够帮助读者更好地掌握Java的数组函数。