一.数组的概念

1.数组是一个容器,用来存储一组数据类型相同的数据.

2.声明数组的格式:   数据类型[]  数组名 = 初值;   注意:这里的数据类型指的是数组中保存的数据的类型

3.数组的三种声明格式

int[]  array = new int[数组的长度];

int[]  array1 = new int[]{1,2,3,4,5,7};

int[]   array2={1,3,5,67,8,3};

4.数组是在堆内存当中开辟一块连续的内存空间

栈内存有两个特点:一是当函数运行完之后会自动释放. 二是先进栈的后出去,后进栈的先出去.

如果数组=null ,这时数组指向的是一个空地址  也会出现异常

NullPointerException

5.数组的长度一旦确定好之后就不能在更改,  ".length"可以获取数组的长度,数组的存取是

依靠数组的下标进行的,下标从1开始.当输入的下标超出数组的范围是就会爆出数组越界的异常

ArrayIndexOutOfBoundsException

二.数组的遍历

// 需求: 随机10个数 随机的区间为[15,150]

// 1.把这个10个数放入数组中

// 2.打印最大值/最小值

int[] arr = new int [10];

int max = 0;

int min = 150;

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

int random =(int)(Math.random()*(150-15+1)+15);

arr[i] = random;

}

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

if(random>max){

max=random;

}

if(random<min){

min=random

}

}

System.out.println("max="+max);

System.out.println("min="+min);

三.反转数组的值

//反转数组的顺序

int arr[]={1,5,6,8,10,12};

int sun = (int)arr.length/2; //得到需要交换的次数

for(int 0;i<sun;i++){

int temp = arr[i];

arr[i]=arr[arr.length-1-i];

arr[arr.length-i-1]=temp;

}

四.数组的排序

1.冒泡排序  数组的中的每一项不停的和下一项进行对比

for(int i=0;i<arr.length-1;i++){  //外层循环控制要比对了多少趟

//内循环-1,防止数组越界

//内循环-1,每循环一次的时候都会确定一个数满足了要求,所以-1

for(int j =0;j<arr.length-1-i;j++){ //内层循环控制一趟要比对多少次

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

int c= arr[j];

arr[j]=arr[j+1];

arr[j+1]=c;

}

}

}

2.选择排序  //选择一个数和其他的数进行比较

int[] arr={1,5,8,4,2};

for(int i;i<arr.length-1;i++){

for(int j=1+i;j<arr.length;j++){

if(arr[i]>arr[j]){

int c= arr[i];

arr[i]=arr[j];

arr[j]=c;

}

}

}

五.数组的折半查找

public static void main(String[] args) {

int arr[] = { 1, 22, 33, 44, 55, 66 };

int key = 66;

int minIndex = 0;

int maxIndex = arr.length - 1;

int midIndex = (int) (minIndex + maxIndex) / 2;

while (arr[midIndex] != key) {

if (arr[midIndex] > key) {

maxIndex = midIndex - 1;

midIndex = (int) (minIndex + maxIndex) / 2;

} else {

minIndex = midIndex + 1;

midIndex = (int) (minIndex + maxIndex) / 2;

}

if (minIndex > maxIndex) {

midIndex = -1;

break;

}

}

System.out.println("该值得下标是" + midIndex);

}

从零双排学java之数组相关推荐

  1. 【零基础学Java】—数组(五)

    [零基础学Java]-数组(五)

  2. 【零基础学Java】—对象数组(十三)

    [零基础学Java]-对象数组(十三) /*** @author :CaiCai* @date : 2022/4/7 11:08*/ public class demo05 {public stati ...

  3. 【零基础学Java】—throw关键字(四十六)

    [零基础学Java]-throw关键字(四十六) 一.throw关键字 public class demo {public static void main(String[] args) {//创建i ...

  4. 【零基础学Java】—哈希值(四十一)

    [零基础学Java]-哈希值(四十一) 一. HashSet集合的介绍 java.util.Set接口 extends Collection接口 Set接口的特点: 不允许重复的元素 没有索引,没有带 ...

  5. 【零基础学Java】—List集合(三十九)

    [零基础学Java]-List集合(三十九) java.util.list接口 extends Collection接口 list接口的特点: 1.有序的集合,存储元素和取出元素的顺序是一致的(存储1 ...

  6. 【零基础学Java】—System类(三十五)

    [零基础学Java]-System类(三十五) java.lang.System 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作 在System类的API文档中,常用的方法有: pub ...

  7. 【零基础学Java】—字符串的概述和特点(十五)

    [零基础学Java]-字符串的概述和特点(十五) 一.字符串的特点 java.lang.String类代表字符串 API当中说:Java程序中的所有字符串字面值(如:"abc")都 ...

  8. 【零基础学Java】—ArrayList集合概述和基本使用(十四)

    [零基础学Java]-ArrayList集合概述和基本使用(十四) 一.什么是ArrayList类以及注意事项 java.util.ArrayList是大小可变的数组的实现,存储在内的数据称为元素,此 ...

  9. 【零基础学Java】—类的定义(七)

    [零基础学Java]-类的定义(七) 一.事物与类的对比 现实世界的一类事物 属性:事物的状态信息 行为:事物能够做什么 Java中用class描述事物也是如此 成员变量:对应事物的属性 成员方法:对 ...

最新文章

  1. oracle asm clsecho,ASM磁盘组一点管理
  2. 底部导航栏Bottom navigation规范指南
  3. Oracle-使用切片删除的方式清理非分区表中的超巨数据
  4. 登陆状态购物车数据结构
  5. 无线网卡的Master,Managed,ad-hoc,monitor等模式
  6. [机器学习] 模型评价参数,准确率,召回率,F1-score
  7. leetcode338 比特位计数
  8. 第26月第13天 hibernate导包
  9. mysql 5.7 延迟同步_完全解决 MySQL 5.7 主从复制的延迟问题
  10. 自学FPGA第一期:初学FPGA
  11. 机器学习在电商应用中的三个境界:爆款模型、转化率模型及个性化模型
  12. 《赖氏经典英语语法》第六集
  13. GAN-评价指标IS以及FID、KID
  14. 求不规则立方体表面积java_立方体的表面积怎么求(测算表面积公式全集)
  15. threw ‘java.lang.NullPointerException‘ exception // toString()
  16. 彻底搞懂-扔鸡蛋问题-方程-动态规划
  17. Access key id should not be null or empty.
  18. 已解决:GET http://localhost:8080/statics/js/jquery-3.4.1.js net::ERR_ABORTED 404
  19. React Native学习资源汇总
  20. Java生成与解析二维码

热门文章

  1. php中如何过滤关键字,PHP - 过滤关键字
  2. java实现仿微信app聊天功能_Android仿微信语音聊天功能
  3. 杰伦的《不能说的秘密》の细节 (详解)
  4. 苏州Uber优步司机奖励政策(8月31日至9月6日)
  5. 小米路由r2d论坛_小米路由R2D,拼夕夕翻车了没
  6. oracle的闪存_ORACLEFS1-2闪存存储系统.PDF
  7. sort函数的用法(C++排序库函数的调用)对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了。
  8. Docker Nginx 如何重新加载配置
  9. 四大行、城商行等银行都在使用什么数据库?
  10. QT之SQLITE3数据库