一、数组的概念
1、什么是数组
数组就是一个容器,用来存储大量相同类型的数据
2、数组的分类
- 一维数组
- 多维数组
3、数组的定义: - 数据类型 [] 数组名;
- 数据类型 数组名 [];
4、数组的创建: - 数据类型 [] 数组名=new 数据类型[元素个数]
- 数据类型[] 数组名={元素1,元素2,元素3,}
- 数据类型[]数组名=new 数据类型[]{元素1,元素2,元素3,}
5、数组当中默认值得情况;
a.基本数据类型
byte int short long 默认值0
Float double 默认值0.0
Boolean 默认值是false
Char默认值是空格 ‘\u0000’
b. 引用数据类型 默认的是null
二、数组的使用
1、数组求和
public class ArrayWork1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arr={1,2,3,4,5,6,7};
int sum=0;
for(int i=0;i<arr.length;i++){
sum+=arr[i];
}
System.out.println("数组和为"+sum);
}
}
2、数组求最大值和最小值
public class ArrayWork1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arr={1,2,3,4,5,6,7};
int sum=0;
for(int i=0;i<arr.length;i++){
sum+=arr[i];
}
System.out.println("数组和为"+sum);
}
}
3、定义一个数据进行首未交换位置
public class ArrayWork3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arr={1,2,3,4,5,6,7,8};
int temp;
for (int i = 0; i < arr.length/2; i++) {
temp=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
}
}
4、从键盘上输入一个数据 判断这个数据在数组当中的什么位置上
public class ArryWork4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int []a={3,4,7,2,6,1};
System.out.println("输入数组{3,4,7,2,6,1}中的一个元素");
java.util.Scanner sc=new java.util.Scanner(System.in);
int i= sc.nextInt();
int index=1;
//元数存在; 给index重新赋值 ;跳出
for (int j = 0; j < a.length; j++) {
if(a[j]==i){
index=j;
break;
}
}
if(index==1){
System.out.println("元素不存在");
}else{
System.out.println(i+"是数组中第"+(index+1)+"个元素");
}
}
}
5.对数组排序
1.冒泡排序
public class ArryWork5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int []a={3,4,7,2,6,1};
//要执行几轮两两交换
for (int j = 0; j < a.length-1; j++)
{
//执行几次两两交换
for( int i=0;i<a.length-j-1;i++){
if(a[i]>a[i+1]){
int temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+"\t");
}
}
}
2、选择排序
public class XuanZe {
public static void main(String[] args) {
// TODO Auto-generated method stub
int []a={3,4,7,2,6,1};
for(int i=0;i<a.length-1;i++){
//假设i是最小值
int min =i;
//i和i之后所有数比较
for(int j=i+1;j<a.length;j++){
if(a[j]<a[min]){
min=j;
}
}
//每次最小值和第一个数互换位置
int temp=a[i];
a[i]=a[min];
a[min]=temp;
}
for (int i = 0; i< a.length; i++) {
System.out.print(a[i]+"\t");
}
}
}
6多维数组
- 定义:数组里面的数据类型还是数组,这样数组被称为多维数组
- 创建:数据类型 [][] 数组名=new 数据类型[大元素的个数][小元素的个数];
数据类型[][] 数组名={{元素1,元素2。。},{元素1,元素2。。},{元素1,元素2。。},{元素1,元素2。。}。。。。}