java基础---数组

1.为什么需要数组?

多个个变量写起来太繁琐,不利于数据处理

2.什么是数组?

数组是一个变量,存储相同数据类型的一组数据(相同数据类型、不是一个是一组)

1.声明一个变量就是在内存空间划出一块合适的空间

2.声明一个数组就是在内存空间划出一串连续的空间

3.数组基本要素?

标识符:数组的名称,用于区分不同的数组

数组元素:向数组中存放的数据

元素下标:对数组元素进行编号,从0开始,数组中的每个元素都可以通过下标来访问

元素类型:数组元素的数据类型

4.数组的特点?

数组长度固定不变,避免数组越界;可少放数据但不可多放数据,多了会报错

5.如何使用定义数组?

public class Case2 {

public static void main(String[] args) {

//定义数组(方法一)

int[] arr=new int[5];

arr[0]=10;

arr[1]=20;

arr[2]=30;

arr[3]=40;

arr[4]=50;

    System.out.println(arr[0]);

    //分配内存+赋值(方法二)

    double[] arr2={100,200,300,400,500};

    System.out.println(arr2[2]);

}

}

6.使用数组的好处是什么?

便于统一处理一组数据

7.如何使用数组?

  1. 告诉计算机数据类型是什么(声明数组时不规定数组长度

数据类型 数组名[ ] ;

数据类型[ ] 数组名 ;

2.分配空间语法:告诉计算机分配几个连续的空间

声明数组并分配空间

数据类型[ ] 数组名 = new 数据类型[大小] ;

3.数组赋值:向分配的格子里放数据

方法1: 边声明边赋值

方法2:动态地从键盘录入信息并赋值

Scanner input = new Scanner(System.in);

for(int i = 0; i < 30; i ++){

            score[i] = input.nextInt();

}

4.处理数据:对数据进行处理

举例:数组的长度如何求

public class Case3 {

public static void main(String[] args) {

double[] scores={70,60,40,10,100};

//数组的长度

System.out.println("数组长度"+scores.length);

double sum=0;

double avg=0;

for (int i = 0; i < scores.length; i++) {

sum=sum+scores[i];

}

avg=sum/scores.length;

System.out.println("平均分"+avg);

}

}

8.数组常见错误?

1.编译出错,没有写明数组的大小

2.编译出错,数组越界编译出错,创建数组并赋值的方式

3.必须在一条语句中完成

练习:显示商品名称,挨个输出

public class Case4 {

public static void main(String[] args) {

//显示商品名称

String[] sp={"Nike背包","Adidas运动衫","李宁运动鞋","Kappa外套","361腰包"};

System.out.println("本次特价商品有:");

for (int i = 0; i < sp.length; i++) {

System.out.println(sp[i]);

}

}

}

练习:数组排序:进行升序排列后输出结果

import java.lang.reflect.Array;

import java.util.Arrays;

public class Case5 {

public static void main(String[] args) {

double[] scores={10,50,100,60,90,30};

//arrays 数组工具类

Arrays.sort(scores);

for (int i = 0; i < scores.length; i++) {

System.out.println(scores[i]);

}

}

}

练习:求最大值

import java.util.Scanner;

public class Case6 {

public static void main(String[] args) {

Scanner input=new Scanner(System.in);

    //最大值

double[] arr={10,50,100,60,90,30};

System.out.println("从键盘输入");

double max=arr[0];

double min=arr[0];

for (int i = 0; i < arr.length; i++) {

if(arr[i]>max){

          max=arr[i];

       }

}

    System.out.println("最大"+max);    

}

}

心得:放最大值,所有数字与最大值比,比它大就替代它,比它小就继续比

练习:插入算法

import java.util.Scanner;

public class Case7 {

public static void main(String[] args) {

int[] arr=new int[6];

arr[0]=100;

arr[1]=90;

arr[2]=80;

arr[3]=70;

arr[4]=60;

Scanner  input=new  Scanner(System.in);

System.out.println("输入您要插入的数字");

int num=input.nextInt();

int index=arr.length-1;  //保存插入的位置

        //1-寻找插入位置

for (int i = 0; i < arr.length; i++) {

if (arr[i]<num) {

index=i;

break;

}

}

  //2-后移   a[0]  [1] [2] [3] [4] [5]

  for(int j=arr.length;j>index+1;j--) {

    arr[j-1]=arr[j-2];  

  }

  //3-插入数据

  arr[index]=num;      

  //打印

  for(int k=0;k<arr.length;k++) {

  System.out.println(arr[k]);

  }

}

}

心得:分三步,寻找插入位置、后移、插入数据

练习:冒泡排序

public class Case8 {

public static void main(String[] args) {

int[] arr={60,70,20,40,10,100};

// i<arr.length-1     

for (int i = 0; i < arr.length; i++) {

for (int j = 0; j < arr.length-1; j++) {

// 冒泡排序

// 升序  降序

if (arr[j]<arr[j+1]) {

//交换

int temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

//打印

for (int k = 0; k < arr.length; k++) {

System.out.println(arr[k]);

}

}

}

心得:外层循环i<n-1;内层循环j<n-1-i

练习:字符逆序输出

import java.util.Arrays;

public class Case9 {

public static void main(String[] args) {

//字符逆序输出

char[] arr={'a','c','u','b','e','p','f','z'};

System.out.print("原字符序列");

for (int i = 0; i < arr.length; i++) {

System.out.print(arr[i]);

}

Arrays.sort(arr);

System.out.println();

System.out.print("升序排序后");

for (int j = 0; j < arr.length; j++) {

System.out.print(arr[j]);

}

System.out.println();

System.out.print("降序排序后");

for (int k = arr.length-1; k >= 0; k--) {

System.out.print(arr[k]);

}

}

}

posted on 2018-08-30 10:39  流着眼泪奔跑  阅读(295)  评论(0编辑  收藏  举报

导航