目录
学着比较简单。。。。
数组
数组的概述和静态初始化
概念:用来存储同种数据类型的多个值
数组容器在存储数据的时候,需结合隐式转换考虑
例如:int类型的数组容器可以存储byte short int
数组定义:格式一:数据类型 [] 数组名-------int [] array
格式二:数据类型 数组名 []------int array[]
初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器的过程
静态初始化:完整格式:数据类型 [] 数组名=new 数据类型[]{元素1,元素2……}
简化格式:数据类型 [] 数组名={元素1,元素2}(常用)
数组的地址值和元素访问
数组元素访问:获取数组元素值,直接打印数组名得到的是地址值,应该用数组名[索引值]
public class Main {
public static void main(String[] args) {
int [] age={12,23,14};
String [] name={"John","Jane","Doe"};
double [] hingh={178.0,160.7,167};
System.out.println(hingh[0]);//178.0
hingh[0]=127;
System.out.println(hingh[0]);//127.0,覆盖了原来的值
}
}
数组的遍历
数组的遍历:
/*思路
数组遍历:索引值是从0开始的
最大索引:数组长度-1
*/
public class Main {
public static void main(String[] args) {
int [] age={12,23,14};
for(int i=0;i<age.length;i++){
System.out.println(age[i]);
}
}
}
IDEA快速遍历数组:数组名.fori
数组的动态初始化和常见问题
动态初始化:格式:数据类型[] 数组名=new 数据类型 [数组长度]
整数类型:默认初始化0
小数类型:默认初始化0.0
字符类型:默认初始化 空格\u0000
引用类型:默认初始化null
静态初始化与动态初始化区别:
动态:只明确元素个数
静态:明确具体数值
数组练习
数组练习1--求最值
public class Main {
public static void main(String[] args) {
int[] age = {33,5,22,44,55};
int temp=age[0];//不能直接等于0,因为数组不一定都是正数,初始化值一定要是数组中的值
for (int i = 1; i < age.length; i++) {
//循环开始条件如果为0 ,那么第一次循环的时候自己跟自己比。
// 没有影响,为了提高效率循环开始条件可以写1
if( temp<age[i]){
temp=age[i];
}
}
System.out.println(temp);
}
}
数组练习2--求和统计个数
import java.util.Random;
//尽量每个循环只做一件事,防止以后混乱
public class Main {
public static void main(String[] args) {
int[] age = new int[4];
Random rand = new Random();
int sum = 0;
int avg = 0;
int num = 0;
for (int i = 0; i < age.length; i++) {
int randomNum = rand.nextInt(100) + 1;
age[i] = randomNum;
}
for (int i = 0; i < age.length; i++) {
System.out.print("各数" + age[i]+" ");
}
for (int i = 0; i < age.length; i++) {
sum += age[i];
avg = sum / age.length;
}
System.out.println("平均值" + avg);
System.out.println("总数" + sum);
for (int i = 0; i < age.length; i++) {
if (age[i] < avg) {
num++;
System.out.println("比平均值小的数有:" + age[i]);
}
}
System.out.println("比平均值小的数量" + num);
}
}
数组练习3--交换数据
12345,变成54321:用变量i和变量j去指向对应的数据
import java.util.Random;
//12345,变成54321
public class Main {
public static void main(String[] args) {
int[] num={1,2,3,4,5};
//利用循环交换数据
for (int i=0,j=num.length-1;i<j;i++,j--){
//交换变量i和变量j指向的元素
int temp=num[i];
num[i]=num[j];
num[j]=temp;
}
for (int i = 0; i < num.length; i++) {
System.out.print(num[i]+" ");
}
}
}
数组练习4--打乱数据
定义一个数组。存入1~5,要求随机打乱数组中所有数据
import java.util.Random;
/*
1.获取一个随机索引
2.拿着随机索引指向的元素,跟i指向的元素进行交换
题目是随机打乱数据,并不是每个元素都不在同一个位置上
也有可能出现24351
*/
public class Main {
public static void main(String[] args) {
int[] num = {1, 2, 3, 4, 5};
//获取随即索引
Random rand = new Random();
//利用循环交换数据
for (int i = 0; i < num.length; i++) {
//交换变量i和变量j指向的元素
int randomNum = rand.nextInt(num.length);
int temp = num[i];
num[i] = num[randomNum];
num[randomNum] = temp;
}
for (int i = 0; i < num.length; i++) {
System.out.print(num[i] + " ");
}
}
}
数组的内存图
下一章---------方法