int[] a = new int[5];
a[0] = (int) (Math.random() * 100);
a[1] = (int) (Math.random() * 100);
a[2] = (int) (Math.random() * 100);
a[3] = (int) (Math.random() * 100);
a[4] = (int) (Math.random() * 100);
for (int i = 0; i < a.length; i++) {
System.out.print("a数组:" + a[i]+" ; ");
}
1.求出随机数组中的最小值
//求出随机数组最小值
//设置一个标识
int flag = 100;
for (int i = 0; i <a.length; i++) {
//把数组每个值依次赋值给中间变量
int val = a[i];
//如果中间变量小于标识,就把值赋值给标识
if (val < flag) {
flag = val ;
}
}
System.out.println("本练习的目的是,找出最小的一个值: "+ tag);
2.反转随机数组
//反转随机数组
//反转数组的次数为数组长度的一半
for (int i = 0; i < a.length/2; i++) {
//最右边值赋值给中间变量
int val= a[a.length-i-1];
//最左边值赋值给最右
a[a.length-i-1] = a[i];
//最右边值赋值给最左
a[i] = val;
}
3.排序随机数组,
/*
*正序排序,从小到大
*/
//使用两层循环,方便比较排序
for(int i=0;i<a.length;i++){
for(int j=i+1;j<a.length;j++){
//比较两个紧邻数值
if(a[i] > a[j]){ // 如果左侧数据值较大
int val = a[j]; //右侧数值赋值给中间变量
a[j]=a[i]; //左侧较大的 赋值给右侧
a[i]=val; // 使用中间变量把较小右侧值赋值给左侧
}
}
}
/**
* 数组倒排序
* */
for (int i = 0; i < a.length; i++) {
for (int j = i+1; j < a.length; j++) {
if(a[i] < a[j]) {
int val = a[j];
a[j] = a[i];
a[i] = val;
}
}
}
4.使用增强for求出随机数组最大值
/*
* 使用增强for 求出最大值
* */
int max = 0 ;
for (int each : a) {
if(each > max) {
max = each;
}
}
System.out.println(max);
5.合并数组
```java
/**
* 合并数组
* */
//1.创建数组
int [] a = new int [5];
int [] b = new int [5];
//2.使用for循环给两个随机数组赋值
for (int i = 0 ; i < a.length; i++ ) {
a[i] = (int) (Math.random()*100);
b[i] = (int) (Math.random()*100);
}
//3.输出两个数组的值
System.out.print("a数组的值:");
for (int each : a) {
System.out.print( each +" , ");
}
System.out.println();
System.out.print("b数组的值:");
for (int each : b) {
System.out.print( each +" , ");
}
//4.创建第三个数组,长度为,上面两个数组和
int [] c = new int[a.length + b.length];
//5-1.使用System.arraycopy()方法 合并第一个数组
System.arraycopy(a, 0, c, 0, a.length);
//5-2.使用System.arraycopy()方法 合并第一个数组
System.arraycopy(b, 0, c, a.length, b.length);
//6.输出打印合并后的数组
System.out.println();
System.out.print("c数组的值:");
for (int i : c) {
System.out.print(i+" , ");
}
## 二、二维数组
/*
* 二维数组
* 1.创建一个二维数组
* 2.使用随机数,给二维数组赋值
* 3.设置随机数格式为5x5
* 4.找出二维数组中,最大随机数
* 5.找出最大随机数所在坐标
* */
//1.创建一个二维数组
int [][] a = new int [5][5];
//2.使用随机数,给二维数组赋值
for(int i=0;i<a.length;i++)
for(int j=0;j<a[i].length;j++)
{
a[i][j] = (int)(Math.random()*100);
}
//3.设置随机数格式为 5x5
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
System.out.print(a[i][j]+ " ");
if (j == 4) {
System.out.println();
}
}
}
//4.找出二维数组中,最大随机数
int flag = 0;
int x = 0 ;
int y = 0 ;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
if(flag < a[i][j]) {
flag = a[i][j];
//5.找出最大随机数所在坐标
x = i ;
y = j ;
}
}
}
System.out.println("找出最大值:" + flag);
System.out.println("坐标为 :"+(x+1) +"||"+(y+1));
1.二维数组转换成一维数组
/**
*System.arraycopy()方法把二维数组的值 复制给一维数组
*src:要复制的数组(源数组)
*srcPos:复制源数组的起始位置
*dest:目标数组
*destPos:目标数组的下标位置
* length:要复制的长度
*
*/
for (int i =0; i<a.length; i++){
//使用Arrays.toString()方法转换,输出效果好看
System.out.println(Arrays.toString(a[i]));
System.arraycopy(a[i],0,b,i*a[0].length,a[0].length);
}
2,数组排序
/*
* 注释:Arrays.sort():
* 1.支持升序排序
* 2.支持局部升序
* 3.自定义排序
*/
int [] b = {5,2,7,4,8,1};
//默认升序排序
Arrays.sort(b);
//局部排序
Arrays.sort(b,2,4);
Integer[] arr = {5,4,7,9,2,12,54,21,1};
//降序
Arrays.sort(arr, new Comparator<Integer>() {
public int compare(Integer a, Integer b) {
return b-a;
}
});
System.out.println(Arrays.toString(arr));
}
3.搜索
public static void main(String[] args) {
Integer [] a = {1 , 4 , 9 , 9 , 5, 3, 8};
//
Arrays.sort(a, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
//
System.out.println(Arrays.toString(a));
//获取指定元素坐标
System.out.println(Arrays.binarySearch(a, 9));
4.判断内容是否相同
int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
int b[] = new int[] { 18, 62, 68, 82, 65, 8 };
System.out.println(Arrays.equals(a, b));
5.数组复制
int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
// copyOfRange(int[] original, int from, int to)
// 第一个参数表示源数组
// 第二个参数表示开始位置(取得到)
// 第三个参数表示结束位置(取不到)
int[] b = Arrays.copyOfRange(a, 0, 3);
for (int i = 0; i < b.length; i++) {
System.out.print(b[i] + " ");
}
6.填充
int a[] = new int[10];
Arrays.fill(a, 5);
System.out.println(Arrays.toString(a));