数组

110 篇文章 0 订阅
88 篇文章 1 订阅

数组(array  非常重要)

1:一组相同类型变量的集合。比如定义存放100个int类型变量的数组

2:容器类   引用类型,存放在内存的堆内存中

3:定义define (声明declare)

    Int[]  intArray; int intArray[];(不建议使用)

结构:Datatype [] arrayname;

4:基本数据类型的数组

数组里面的小抽屉默认编号是从0开始的   0称为index 索引   也称为下标

在取数组值时候,不能越界

Index的最大值=数组长度-1

5:数组的遍历

6:遍历的另外一种写法,泛型遍历foreach

7:数组静态初始化

int[] intArr2 = new int[] {1,2,3,4,5,6};

8:引用传递

9:数组作为方法的参数,数组作为方法的返回值

    引用传递与非引用传递

 

1:与for循环相关    通过for循环对数组操作

int length=10;

         int[] array =new  int[10];

        

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

              Random random=new Random();

              int input=random.nextInt(100)+1;

              array[i]=input;

         }

         System.out.println(Arrays.toString(array));

        

//       对数组中元素进行算数操作,仍然使用for循环

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

              array[i]*=10;

         }

         System.out.println(Arrays.toString(array));

        

2:数组中查找某一值

//       判断数组中有没有某一个值

//       变量初始化一般在优化时也赋予初始业务逻辑

         int value=210;

         boolean isFind=false;

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

              if (value==array[i]) {

                   isFind=true;

                   break;

              }

         }

         System.out.println(isFind?"找到了":"找不到");

3:排序   冒泡排序

int[] array = { 9, 3, 5, 1, 7, 6, 5 };

//       冒泡   每一次排序都能获得一个最值

//       核心代码,交换位置

         System.out.println(Arrays.toString(array));

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

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

//                比较交换位置

                   if (array[j] > array[j + 1]) {

                       int temp = array[j];

                       array[j] = array[j + 1];

                       array[j + 1] = temp;

                   }

              }

              System.out.println("第" + (i + 1) + "次遍历:" + Arrays.toString(array));

         }

4:反转   reverse

int[] array1= {1,4,5,6,67,34,3};

         int[] array2= {3,4,5,2,24,2};

//       反转

         int count=array1.length/2;

         int headArray=0;

         int tailArray=array1.length-1;

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

              int temp=array1[headArray];

              array1[headArray]=array1[tailArray];

              array1[tailArray]=temp;

              headArray++;

              tailArray--;

         }

         System.out.println(Arrays.toString(array1));

    4.1数组个数是奇数

    4.2数组个数是偶数

5:array类的方法

    Sort:

int[] array = { 9, 3, 5, 1, 7, 6, 5 };

//       冒泡   每一次排序都能获得一个最值

//       核心代码,交换位置

         System.out.println(Arrays.toString(array));

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

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

//                比较交换位置

                   if (array[j] > array[j + 1]) {

                       int temp = array[j];

                       array[j] = array[j + 1];

                       array[j + 1] = temp;

                   }

              }

              System.out.println("第" + (i + 1) + "次遍历:" + Arrays.toString(array));

         }

binarySearch:针对已经排序后的数组才可以使用

//       获得结果key所在数组中的索引值,如果为负数,就证明key不在所查找的数组中。

int[] array = {1,2,3,4,5,6,7,8,9};

         Arrays.sort(array);

         System.out.println(Arrays.toString(array));

//       针对已经排序后的数组才可以使用

//       获得结果key所在数组中的索引值,如果为负数,就证明key不在所查找的数组中。

         int index = Arrays.binarySearch(array, 15);

         System.out.println(index);

 

练习:自定义一个方法实现tostring的效果。

把判断数组中是否存在某一值封装成一个方法。

 

 

import java.util.Arrays;

import java.util.Random;

 

/**

 * @author Administrator

 *

 */

public class ArrayDemo {

 

     /**

      * @param args

      */

     public static void main(String[] args) {

         // TODO Auto-generated method stub

//       定义一个长度为10的数组:

         int[] intArr=new int[10];

//       利用随机数给数组随机赋10个值,赋值范围自己定义

         Random random = new Random();

//       赋值范围[1,10]

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

              int input=random.nextInt(10)+1;

              intArr[i]=input;

         }

         System.out.println(Arrays.toString(intArr));

        

//       对intArr进行排序

         /*Arrays.sort(intArr);

          System.out.println(Arrays.toString(intArr));

//       折半查找,查找某一个值在数组中的位置

         int a=Arrays.binarySearch(intArr, 5);

         System.out.println(a);*/

        

//       对数组进行冒泡排序

         /*for (int i = 0; i < intArr.length; i++) {

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

                   if (intArr[j]>intArr[j+1]) {

                       int temp=intArr[j];

                       intArr[j]=intArr[j+1];

                       intArr[j+1]=temp;

                   }

                  

              }

              System.out.println("第"+(i+1)+"次数组遍历:"+Arrays.toString(intArr));

         }*/

        

//       对数组进行反转

         /*int count=intArr.length/2;

         int headArr=0;

         int tailArr=intArr.length-1;

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

              int temp=intArr[headArr];

              intArr[headArr]=intArr[tailArr];

              intArr[tailArr]=temp;

              headArr++;

              tailArr--;

         }

         System.out.println(Arrays.toString(intArr));*/

        

//       查找数组中是否存在某一值,存在则输出找到,不存在则输出找不到;

        

         boolean isValue=false;

         int b=random.nextInt(10)+1;

         System.out.println("查到数组中是否有"+b);

         int temp=b;

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

              if (intArr[i]==b) {

                   isValue=true;

                   break;

              }

         }

         System.out.println(isValue?"找到了":"找不到");

        

     }  

 

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值