zoukankan      html  css  js  c++  java
  • 一维数组

    一.数组的定义及声明

    1.数组是一个变量,存放相同数据类型的一组数据

    2.数组的基本要素:

      数组名称(也叫标识符)要遵循驼峰命名法 

      数组中的每一个值都叫数组的元素

      每一个数组的元素都有一个下标,而且是从0开始

      数组的类型可以使int double char 等类型  或者是一些引用数据类型

      数组长度就是数组中能够存放多少个元素,注意 数组长度是固定不变的 一按确定不能改动,避免下标越界的错误

    3.使用数组的四个步骤:

      先声明:int[] num;

      分配空间:num=new int[];

      赋值:num[0]=8;

      处理数据:num[0]=num[0]*8;

    4.声明一个数组几种写法

    package com.bdqn.practice;
    import java.util.*;
    public class Demo9 {
        public static void main(String[] args){
            int[] num=new int[5];
            
            int[] num1={1,2,3,4,5};
            
            int[] num2=new int[]{1,2,3,4,5};  
        }
    }

    以下是几种错误的写法:

    package com.bdqn.practice;
    import java.util.*;
    public class Demo9 {
        public static void main(String[] args){
            int[] num=new int[];
            
            int[] num1;
            num1={1,2,3,4,5};
            
            int[] num2=new int[5]{1,2,3,4,5};
        
            
        }
    }

    讲解:1.声明一个数组是必须写明数组的长度 2.声明数组后再为数组赋值也会编译报错,边声明边赋值必须写在同一行 3.不能边声明数组长度边赋值,这样也会编译错误

    二. 利用for或者foreach遍历数组(循环数组中的值)

    package com.bdqn.practice;
    import java.util.*;
    public class Demo9 {
        public static void main(String[] args){
            int[] num=new int[]{1,3,5,9,7};
          //传统for循环
    for(int i=0;i<num.length;i++){ System.out.print(num[i]+" "); }
          //foreach循环 System.out.println();
    for(int list:num){ System.out.print(list+" "); } } }

     讲解:1.foreach (增强型for循环)在1.5版本后的JDK才可以使用

    2.传统循环和增强型循环的区别:传统for循环可以边循环边赋值,而foreach循环只是遍历数组中的元素(如果只是输出元素 foreach优于传统循环)

    3.有些时候在环境中使用不了foreach ,1.首先确定JDK版本号,2.确定编译器的版本号

     此图是更改编译器版本号的位置

    三.冒泡排序及选择排序

    1. 冒泡排序

    package com.bdqn.practice;
    import java.util.*;
    public class Demo9 {
        public static void main(String[] args){
            int[] num=new int[]{1,3,5,9,7};
            //冒泡排序
            for(int i=0;i<num.length-1;i++){
                for(int j=0;j<num.length-1-i;j++){
                    if(num[j]>num[j+1]){
                        int temp=num[j];
                        num[j]=num[j+1];
                        num[j+1]=temp;
                    }
                }
            }
            for(int list:num){
                System.out.print(list+"	");
            }
        }
    }

     循环输出后结果是1 3 5 7 9

    2.选择排序

    package com.bdqn.practice;
    import java.util.*;
    public class Demo9 {
        public static void main(String[] args){
            int[] num=new int[]{1,3,5,9,7};
            //选择排序
            for(int i=0;i<num.length;i++){
                int min=i;
                for(int j=i+1;j<num.length;j++){
                    if(num[min]>num[j]){
                        min=j;
                    }
                }
                if(min!=i){
                    int temp=num[min];
                    num[min]=num[i];
                    num[i]=temp;
                }
            }
            for(int list:num){
                System.out.print(list+"	");
            }
        }
    }

    3.Arrays.sort()排序

    package com.bdqn.practice;
    import java.util.*;
    public class Demo9 {
        public static void main(String[] args){
            int[] num=new int[]{1,3,5,9,7};
            Arrays.sort(num);
            for(int list:num){
                System.out.print(list+"	");
            }
        }
    }

    Arrays.sort()默认是升序输出,如果想倒序输出利用for循环递减的方式输出

    4.binarySearch获取数组中至制定元素的下标值

    4.在升序或者降序中插入元素

    package com.bdqn.practice;
    import java.util.*;
    public class Demo7 {
        public static void main(String[] args){
            Scanner input=new Scanner(System.in);
            int [] num=new int[6];
            num[0]=99;
            num[1]=88;
            num[2]=85;
            num[3]=63;
            num[4]=60;
            System.out.println("插入前的顺序是:");
            for(int i=0;i<num.length-1;i++){
                System.out.print(num[i]+" ");
            }
            System.out.println();
            System.out.println("请输入数值:");
            int score=input.nextInt();
            int index=0;
            for(int i=0;i<num.length-1;i++ ){
                if(score>num[i]){
                    index=i;
                }
            }
            for(int i=num.length-1;i>index;i--){
                num[i]=num[i-1];
            }
            num[index]=score;
            for(int list:num){
                System.out.print(list+" ");
            }
        }
    }
  • 相关阅读:
    BZOJ BLO 1123 (割点)【双连通】
    P4291 [HAOI2008]排名系统
    P3165 [CQOI2014]排序机械臂
    P3224 [HNOI2012]永无乡
    P1169 [ZJOI2007]棋盘制作
    P2303 [SDOi2012]Longge的问题
    P2216 [HAOI2007]理想的正方形
    P2473 [SCOI2008]奖励关
    P2617 Dynamic Rankings
    P2518 [HAOI2010]计数
  • 原文地址:https://www.cnblogs.com/LittleBoys/p/11945202.html
Copyright © 2011-2022 走看看