什么是数组?
1.数组就是一组具有相同数据类型的数据集合
2.数组是引用数据类型,实质是在内存中连续分配的内存空间
3.数组的取值和赋值都围绕索引/下标来展开(索引从0开始)
数组的特性
1.java的数组是引用类型,但数组中的元素可以是基本数据类型,也可以是引用类型
2.数组的长度一经确定不能改变
一维数组的使用
1.数组的定义和初始化: 数据类型 [] 数组名 = new 数据类型[length];
2.定义和静态初始化: 数据类型 [] 数组名 = {值,值,值,......};
或者: 数据类型 [] 数组名 = new 数据类型[] {值,值,值,......};
数组的取值和赋值
赋值:数组名[索引] = 值;
取值: 数组名[索引];
怪东西
import java.util.Arrays;
/**
* @Author: Bun
* @Version: 1.0
* @Date: 2022/9/24-16:10
* @Name: Int[] array = {2,432,5221,235,2,5352,1,53,5,3,5364,2,2,63,3533,2,53,532,532};
* 求所有元素和。
* 输出所有下标为奇数的元素。如:下标为1 3 5 7等的元素值。
* 输出所有元素中,值为奇数的。
* 将所有元素乘二。
* 将所有元素加到第一个元素中。 --> 将所有元素的累加和存入到第一个元素中。
* 将原数组中为奇数的数字存到B数组中
* 偶数元素存到C数组中 --> 为偶数的数字存到C数组中。
* 分别逆序输出B数组和C数组。
*/
public class Day04TestSuper {
public static void main(String[] args) {
int[] array = {2, 432, 5221, 235, 2, 5352, 1, 53, 5, 3, 5364, 2, 2, 63, 3533, 2, 53, 532, 532};
//元素和
int sum = 0;
for (int i : array) {
sum += i;
}
System.out.println(sum);
//输出下标为奇数的数
for (int i = 0; i < array.length; i++) {
if (i % 2 != 0) {
System.out.print(array[i] + " ");
}
}
//输出值为奇数的
int A = 0;
System.out.println();
for (int i : array) {
if (i % 2 != 0) {
A++;
System.out.print(i + " ");
}
}
//所有元素乘以二
int j = 0;
for (int i : array) {
array[j] = i * 2;
j++;
}
System.out.println();
System.out.println(Arrays.toString(array));
//将所有元素的累加和存入到第一个元素中
sum = 0;
for (int i : array) {
sum += i;
}
array[0] = sum;
System.out.println(Arrays.toString(array));
//将原数组中为奇数的数字存到B数组中
int[] array1 = {2, 432, 5221, 235, 2, 5352, 1, 53, 5, 3, 5364, 2, 2, 63, 3533, 2, 53, 532, 532};
int arrJi[] = new int[A];
int B = 0;
for (int i : array1) {
if (i % 2 != 0) {
arrJi[B] = i;
B++;
}
}
System.out.println("新奇数数组: " + Arrays.toString(arrJi));
//为偶数的数字存到C数组中
int C = 0;
int arrOu[] = new int[array1.length - A];
for (int i : array1) {
if (i % 2 == 0) {
arrOu[C++] = i;
}
}
System.out.println("新偶数数组: " + Arrays.toString(arrOu));
//奇数排序
for (int i = 0; i < arrJi.length - 1; i++) {
for (int k = 0; k < arrJi.length - 1 - i; k++) {
if (arrJi[k] < arrJi[k + 1]) {
int temp = arrJi[k + 1];
arrJi[k + 1] = arrJi[k];
arrJi[k] = temp;
}
}
}
System.out.println("排序后: " + Arrays.toString(arrJi));
//偶数排序
for (int i = 0; i < arrOu.length - 1; i++) {
for (int k = 0; k < arrOu.length - 1 - i; k++) {
if (arrOu[k] < arrOu[k + 1]) {
int temp = arrOu[k + 1];
arrOu[k + 1] = arrOu[k];
arrOu[k] = temp;
}
}
}
System.out.println("排序后: " + Arrays.toString(arrOu));
}
}