数组是一种非常常见的数据结构,它可以用于存储一组数据,并且支持快速的遍历、排序和查找等操作。在Java中,数组是一个容器对象,可以存储相同类型的元素,并且在创建后其大小是不可改变的。本文将详细介绍Java数组的创建、遍历、排序
Java数组常见应用详解
数组是一种非常常见的数据结构,它可以用于存储一组数据,并且支持快速的遍历、排序和查找等操作。在Java中,数组是一个容器对象,可以存储相同类型的元素,并且在创建后其大小是不可改变的。本文将详细介绍Java数组的创建、遍历、排序和查找等常见应用,让大家对Java数组有更深入的了解。
创建数组
在Java中,可以通过以下方式来创建数组:
//声明方式1
元素类型[] 数组名 = new 元素类型[数组长度];
//声明方式2
元素类型[] 数组名 = {元素1, 元素2, ...};
//声明方式3
元素类型 数组名[] = {元素1, 元素2, ...};
创建一个长度为n的int类型数组的示例代码如下:
int[] arr1 = new int[n];
int[] arr2 = {1, 2, 3, 4, 5};
int arr3[] = {1, 2, 3, 4, 5};
遍历数组
遍历数组是指按照数组元素的顺序依次访问数组中每个元素的操作。Java数组支持两种遍历方式:普通for循环和增强for循环。
使用普通for循环遍历数组示例代码如下:
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
使用增强for循环遍历数组示例代码如下:
for (int num : arr) {
System.out.print(num + " ");
}
排序数组
数组排序是指将数组中的元素按照一定的规则进行排序的操作。Java数组提供了Arrays类和Collections类中的sort()方法来快速排序数组。
使用Arrays类的sort()方法对数组进行排序的示例代码如下:
Arrays.sort(arr);
for (int num : arr) {
System.out.print(num + " ");
}
查找数组
数组查找是指在数组中查找指定元素的操作。Java数组提供了Arrays类中的binarySearch()方法来快速查找数组中的元素。
使用Arrays类的binarySearch()方法在数组中查找指定元素的示例代码如下:
Arrays.sort(arr);
int index = Arrays.binarySearch(arr, target); // target为要查找的元素
System.out.println("该元素在数组中的下标为:" + index);
更加详细的Java数组应用教程可以参考以下文章:
Java数组应用全解析
Java Arrays类全方位指南
示例说明
示例1:统计元素出现次数
下面这段代码可以实现一个功能:输入一组数,统计其中每个数出现的个数。
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int[] a=new int[1000]; //用来存储输入的数组
int[] b=new int[1000]; //用来统计每个数字出现次数
int n; //n为输入的数字个数
System.out.println("请输入数字个数:");
n=scanner.nextInt();
System.out.println("请输入数字:");
for(int i=0;i<n;i++){
a[i]=scanner.nextInt();
b[a[i]]++; //统计数字出现次数
}
for(int i=0;i<1000;i++){
if(b[i]>0){
System.out.println(i+":"+b[i]);
}
}
scanner.close();
}
示例2:找出数组中第k小的数
下面这段代码可以实现一个功能:找出一个数组中第k小的数。
public static int quickSelect(int[] a, int left, int right, int k) {
if (left == right) {
return a[left];
}
// partition将数组a分为两部分
int p = partition(a, left, right);
int m = p - left + 1;
if (k == m) {
return a[p];
} else if (k > m) {
return quickSelect(a, p + 1, right, k - m);
} else {
return quickSelect(a, left, p - 1, k);
}
}
public static int partition(int[] a, int left, int right) {
int pivot = a[right];
int i = left - 1;
for (int j = left; j < right; j++) {
if (a[j] < pivot) {
i++;
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
int tmp = a[i + 1];
a[i + 1] = a[right];
a[right] = tmp;
return i + 1;
}
public static void main(String[] args) {
int[] arr = {1, 4, 2, 3, 6, 5, 8, 7};
int k = 3;
int res = quickSelect(arr, 0, arr.length - 1, k);
System.out.println("数组中第" + k + "小的数为:" + res);
}
本文标题为:Java数组常见应用详解【创建、遍历、排序、查找】
基础教程推荐
- FCKeditor 网页在线编辑器的使用方法 2024-01-11
- Java使用IO模拟注册登录 2024-02-28
- SpringMVC拦截器的实现和作用及Redis登陆功能的优化详解 2023-05-24
- springboot整合shardingsphere和seata实现分布式事务的实践 2023-03-21
- 解决SpringBoot下Redis序列化乱码的问题 2023-01-13
- SpringCloud OpenFeign超详细讲解模板化远程通信的实现 2023-02-28
- jmeter正则表达式提取器的用法与正则详解 2023-02-19
- 解决springboot启动失败的问题('hibernate.dialect' not set) 2023-08-08
- HttpClient Post 二进制/字节流/byte[]实例代码 2023-08-01
- java避免多层嵌套循环用到的一些小技巧分享 2023-06-06