• 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]);

    }

    }

    }

  • 相关阅读:
    HDU
    Count on a tree
    Codeforces Round #368 (Div. 2) D. Persistent Bookcase
    Codeforces Round #321 (Div. 2) E
    Codeforces Round #220 (Div. 2) D
    树状数组区间加法更新板子
    在 tableview的上面 添加 一个view, 下面 加一个 button,都是 监听 scrollview的滑动而已,
    synchronize,
    菊花,
    4294967295,
  • 原文地址:https://www.cnblogs.com/-lyr/p/9558702.html
Copyright © 2020-2023  润新知