一维数组

Posted littleboys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一维数组相关的知识,希望对你有一定的参考价值。

技术图片

一.数组的定义及声明

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+" ");
        }
    }
}

 

以上是关于一维数组的主要内容,如果未能解决你的问题,请参考以下文章

php 多个 一维数组 去重 组成新数组

dev c++,二维数组的第一维赋值出错?

C语言数组知识点(一维 二维数组,传参)

Java定义一个一维数组,并给每个元素赋值为数组下标的值,并显示

ZZNUOJ_C语言1119:一维数组排序(完整代码)

一维数组