数组的标识:数据类型后面加个中括号[]
数组一共有四种声明的方法:
1、int arr={1,2,3,4,5,6,7,8,9};
2、int[] arrA={1,2,3,4,5,6,7,8,9,10};
3、int[] arrB=new int[6];//标识可以存储六个值
4、int[] arrD = null;
int[3] 数组里面显示的是0
double[3]数组里面显示的是0.0
//会显示数组中的内容,不是这个数组所在的位置
System.out.println("arrA:"+Arrays.toString(arrA));//变量使用必须要赋值
//运行这段语句的时候,输出下列字段
System.out.println(arrA);
//数据类型标识 @ "内存地址" 数组存储多个值,就是把这些值放到一个地方然后数组这个变量只记住这些个值存储在那个位置里
arrA:[I@4554617c
arrB:[I@74a14482
arrD:null
-------------------------------------------------------
int[] arr = {1,2,3,4,5,6};//计数是从1开始的
//值所在数组的位置 0 1 2 3 4 5 编号0 下标 索引
System.out.println(Arrays.toString(arrA)); //输出数组内容
arrA[arrA.length-1]=100;//获取最后一个元素并且修改掉内容
System.out.println(Arrays.toString(arrA)); //输出修改后数组内容
System.out.println("数组的长度:"+arrA.length);//length数组的长度
for (int i = 0; i < arrA.length; i++){
System.out.println("arrA["+i+"]"+arrA[i]);
}
//如何获取数组的最后一个元素(也就是最后一个下标)
System.out.println("最后一个下标:"+(arrA.length-1));
//超过范围会报错,负数或者大于下标都会报错
//下标越界异常。。。。冒号后面就是越界位置
//ArrayIndexOutOfBoundsException: 5
int[] arrA = {2,36,5,8,96}
System.out.println(arrA[0]);
arrA[0]=33;
System.out.println(arrA[0]);
System.out.println(arrA[1]);
System.out.println(arrA[2]);
System.out.println(arrA[3]);
System.out.println(arrA[4]);
import java.awt.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Ex {
public static void main(String[] args) {
//1、做累加
{
int[] arr1 = {1,5,6,38,4,3,19,65};
int sum = 0;
for (int i = 0; i < arr1.length; i++) {
sum+=arr1[i];
}
System.out.println("sum:"+sum);
}
//2、求最大值和最小值
//(1)排序的做法
{
int[] arr1 = {1,5,6,38,4,3,19,65};
System.out.println("排序前:"+Arrays.toString(arr1));
Arrays.sort(arr1);
System.out.println("排序后:"+Arrays.toString(arr1));
System.out.println("最小值:"+arr1[0]);
System.out.println("最大值:"+arr1[arr1.length-1]);
}
//(2)设置最大最小值做法
{
int[] arr2 = {2,3,8,0,7,9,5,4};
int max=arr2[0],min=arr2[0];
for (int i = 0; i < arr2.length; i++) {
if (max<arr2[i]){
max=arr2[i];
}
if (min>arr2[i]){
min=arr2[i];
}
}
System.out.println("max="+max);
System.out.println("min="+min);
}
//3、判断一个元素是否在数组中
{
int[] arr3 = {1,2,3,4,5};
int find=3;
int index=-1;
for (int i = 0; i < arr3.length; i++) {
if (arr3[i]==find){
index=i;
break;
}
}
System.out.println("index:"+index);
//4、替换元素
int[] arr4 = {2,3,6,5,4,8};
arr4[3]=65;
System.out.println(arr4[3]);
}
//5、增加
{
int[] arr = {1,2,3};
List<Integer> list1 = new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(2,4);
System.out.println(list1);
}
{//合并,整合两个数组
int[] arrA = {1,2,3},arrB = {4,5,6};
int[] arrC = new int[arrA.length+arrB.length];
for (int i = 0; i < arrA.length; i++) {
arrC[i]=arrA[i];
}
for (int i = 0; i < arrB.length; i++) {
arrC[i+arrA.length]=arrB[i];
}
System.out.println(Arrays.toString(arrC));
}
//6、删除
{
//删除数组中的某一个元素的方法:
//把最后一个元素代替制定的元素,然后数组缩容
Scanner sc = new Scanner(System.in);
int[] arr = {1,5,6,2,4,8,3,9,7};
System.out.println(Arrays.toString(arr));
System.out.println("输入删除第几个元素:");
int n = sc.nextInt();
sc.close();
//把最后一个元素代替制定的元素
arr[n-1]=arr[arr.length-1];
//数组缩容
arr = Arrays.copyOf(arr, arr.length-1);
System.out.println(Arrays.toString(arr));
}
//-------------------------------------------------------
//生成随机数0-1(不包括1)之间的一个double类型
double random = Math.random()*100;
//类型转换 小数点类型转换为整数类型,那么就没有小数点了
int x=(int)random;
System.out.println(random);
System.out.println(x);
//-------------------------------------------------------
//按照这行写法就可以得到你想要的随机数
for (int i = 0; i < 10; i++) {
int y = (int) (Math.random()*100);
System.out.println("y="+y);
}
}
}