美文网首页
java——数组

java——数组

作者: 打死你的小乌龟 | 来源:发表于2018-08-29 23:57 被阅读0次
数组概念

同一种类型数据的集合。其实数组就是一个容器。
可以自动给数组中的元素从0开始编号,方便操作这些元素。

  • 格式1:
    元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
    示例:int[] arr = new int[5];
  • 格式2:
    元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
    int[] arr = new int[]{3,5,1,7};
  • 格式3:
    int[] arr = {3,5,1,7};
    格式3必须声明的同时初始化
    格式1创建数组的时候没有显示给数组赋值,会有默认值

数组的访问:通过下标访问
语法:变量名[下标] length获取元素的个数
下标的范围:0——变量名.length-1

数组的遍历:for循环
多维数组的遍历:for循环嵌套

常见的数组操作

1.数组复制

    int[] arrA = {1,2,3,4,5,6};
    int[] arrB = new int[arrA.length];

   for(int i=0; i<arrA.length; i++){
    arrB[i] = arrA[i];
   }

  for(int i=0; i<arrB.length; i++){
        System.out.println(arrB[i]);
   }

2.数组的查找

Scanner in = new Scanner(System.in);
        System.out.println("请输入你要找的人");
        String name = in.next();
        String[] arr = {"张","王"};
        Boolean flag = false;
        for(int i=0; i<arr.length; i++){
            if(name.equals(arr[i])){
                flag = true;
            }   
        }
        if(flag=true){
            System.out.println("找到");
        }

3.数组的插入

   Scanner in = new Scanner(System.in);

        int[] arr = { 5665, 55, 66, 99, 22, 14, 54, 78 };
        System.out.println("请输入你要插入的数");
        int num = in.nextInt();
        arr[arr.length - 1] = num;
        for (int i = arr.length - 1; i > 0; i--) {
            if (arr[i] < arr[i - 1]) {
                int temp = arr[i];
                arr[i] = arr[i - 1];
                arr[i - 1] = temp;

            } else {
                break;
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }

4.数组最值

public static int getMax(int[] arr) {
        int max = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        return max;
    }
    
    public static int getMax_2(int[] arr) {
        int maxIndex = 0;
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] > arr[maxIndex]) {
                maxIndex = i ;
            }
        }
        return arr[maxIndex];
    }

5.数组的排序
5.1选择排序

    public static void selectSort(int[] arr)
    {
        for(int x=0; x<arr.length-1; x++)
        {
            for(int y=x+1; y<arr.length; y++)
            {
                if(arr[x]>arr[y])
                {
            
                
                    int temp  = arr[x];
                    arr[x] = arr[y];
                    arr[y] = temp;
                    
                }
                
            }
        }
    }

5.2冒泡排序

    public static void bubbleSort(int[] arr)
    {
        for(int x=0; x<arr.length-1; x++)
        {
            for(int y=0; y<arr.length-1-x; y++)
            {
                if(arr[y]>arr[y+1])
                {
                    int temp  = arr[y];
                    arr[y] = arr[y+1];
                    arr[y+1] = temp;    
                }   
            }   
        }   
    }

6.折半查找(二分查找)

public static int halfSearch(int[] arr, int key) {
        int max, min, mid;
        min = 0;
        max = arr.length - 1;
        mid = (max + min) / 2;

        while (arr[mid] != key) {
            if (key > arr[mid])
                min = mid + 1;
            else if (key < arr[mid])
                max = mid - 1;

            if (max < min)
                return -1;

            mid = (max + min) / 2;
        }
        return mid;

    }

    public static int halfSearch_2(int[] arr, int key) {
        int max, min, mid;
        min = 0;
        max = arr.length - 1;

        while (min <= max) {
            mid = (max + min) >> 1;

            if (key > arr[mid])
                min = mid + 1;
            else if (key < arr[mid])
                max = mid - 1;
            else
                return mid;
        }
        return -min - 1;
    }

7.数组內建方法

    Arrays.binarySearch(arr,3);//二分查找指定元素
    Arrays.copyOfRange(arr,1,7);//拷贝元素
    Arrays.full(arr,8);//填充元素
    Arrays.toStirng(arr);//数组转换成字符串
    Arrays.sort();//普通排序

8.进制转换

    //十进制-->十六进制。
    public static void toHex(int num)
    {
        trans(num,15,4);
    }
    //十进制-->二进制。
    public static void toBinary(int num)
    {
        trans(num,1,1);
    }

    // 十进制-->八进制。
    public static void toOctal(int num)
    {
        trans(num,7,3);
    }

    public static void trans(int num,int base,int offset)
    {

        if(num==0)
        {
            System.out.println("0");
            return ;
        }
        //定义一个对应关系表。
        char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    
        char[] arr = new char[32];
        int pos = arr.length;

        while(num!=0)
        {
            int temp = num & base;
            arr[--pos] = chs[temp];
            num  = num >>> offset;
        }

        for(int x=pos ;x<arr.length; x++)
        {
            System.out.print(arr[x]);
        }
        System.out.println();

    }

相关文章

  • 【骚全带你学Java---九、认识java数组】

    java中数组 数组是指一组数据的集合,数组中的每个数据称为元素。在Java中,数组也是Java对象。数组中的元素...

  • JAVA 基本功秘籍

    1. Java数组与内存控制一、Java数组初始化 Java数组是静态的,即当数组被初始化之后,该数组的长度是不可...

  • Java数组

    Java数组 1.声明数组 在java中声明数组有两种形式:数组元素类型名[] 数组名;数组元素类型名 数组名 [...

  • Java知识之数组

    Java数组知识图如下: 数组基本用法 声明数组声明数组语法格式: 初始化数组Java中使用关键字new创建数组对...

  • Java学校-String类/数组

    Java StringBuffer 和 StringBuilder 类 Java 数组 声明数组变量 明白这句话p...

  • 图解Java数组的内存分配

    1. Java数组是静态的 Java是静态语言,所以Java的数组也是静态的,即:数组被初始化后,长度不可变 静态...

  • Kotlin数组

    数组在Kotlin中使用Array类来表示。下面巴拉一下Kotlin数组和Java数组的区别。Java中的数组通常...

  • java 数组

    java数组:相同类型数据的有序集合 (数组元素的数据类型必须相同) 1. java 创建数组变量 数组中已有元素...

  • 面试题总结

    1、Java中能创建Volatile数组吗? 能,Java中可以创建volatile类型数组,不过只是一个指向数组...

  • scala 2.13.1 数组 和Java List互转

    Scala数组 转 Java List List 转 Scala数组

网友评论

      本文标题:java——数组

      本文链接:https://www.haomeiwen.com/subject/nnidiftx.html