一.数组
1.数组是一个什么东西?为什么使用数组?
比如说我要存5位员工的工资,我可以使用变量来存储,需要定义多个变量,因为每一个变量只能存一个值。
如果是更多的员工,那么定义的变量的数量会更多,这样太麻烦了。
我们可以使用数组解决这个问题,数组就是一个 容器,可以一次性存放多个数据,前提是数据类型必须一样。
数组是一个引用类型。
2. 如何定义数组?
数组类型[] 数组名;
3.数组的初始化
数组定义定义好后,必须得进行初始化,数组的初始化一共有两种:
1.动态初始化:指定数组的长度,长度指的是数组中能存多少数据,数组的长度定义好以后是不能改变的。两种格式:
第一种格式:
数组类型[ ] 数组名=new 数据类型[数组长度];
第二种格式:
数组类型[ ] 数组名;
数组名=new 数据类型[数据长度]
2.静态初始化:不是指定数组的长度,而是直接创建数组的同时给数组添加数据。两种格式:
第一种:
数组类型[ ] 数组名=new 数组类型[]{数据1,数据2,…};
第二种
数组类型[ ] 数组名;
数组名=new 数据类型[ ]{数据1,数据2,…}
4.怎么访问数组里面的元素?
数组名【数组下标】;
【注意】数组的下标从0开始
5.栈、堆、方法区等小知识
栈:存放局部变量
堆:new出来的东西都在堆里
方法区:存的是class文件
本地方法区:操作系统
寄存器:和cpu有关
6.怎么获取数组的长度?
数组名.length;
7.foreach循环(for循环的加强版)
for(变量类型 接收数组元素值的变量名:数组名)
8.已知array={1,3,6,4,7,2,9};取出所有奇数并重新组成一个数组?
int[] array1={1,3,6,4,7,2,9};
int count=0;
String str="";
for(int i=0;i<array1.length;i++){
if(array1[i]%2!=0){
count++;
str+=array1[i]+",";
}
}
//截取字符串
str=str.substring(0,str.lastIndexOf(","));//坐标从0开始
//根据特定字符把字符串拆分成一个数组
String[] strs1=str.split(",");
//创建新数组
int[] array2=new int[count];
for(int i=0;i<array2.length;i++){
array2[i]=Integer.parseInt(strs1[i]);
}
for(int i:array2){
System.out.println(i);
}