从零双排学java之数组
一.数组的概念
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之数组相关推荐
- 【零基础学Java】—数组(五)
[零基础学Java]-数组(五)
- 【零基础学Java】—对象数组(十三)
[零基础学Java]-对象数组(十三) /*** @author :CaiCai* @date : 2022/4/7 11:08*/ public class demo05 {public stati ...
- 【零基础学Java】—throw关键字(四十六)
[零基础学Java]-throw关键字(四十六) 一.throw关键字 public class demo {public static void main(String[] args) {//创建i ...
- 【零基础学Java】—哈希值(四十一)
[零基础学Java]-哈希值(四十一) 一. HashSet集合的介绍 java.util.Set接口 extends Collection接口 Set接口的特点: 不允许重复的元素 没有索引,没有带 ...
- 【零基础学Java】—List集合(三十九)
[零基础学Java]-List集合(三十九) java.util.list接口 extends Collection接口 list接口的特点: 1.有序的集合,存储元素和取出元素的顺序是一致的(存储1 ...
- 【零基础学Java】—System类(三十五)
[零基础学Java]-System类(三十五) java.lang.System 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作 在System类的API文档中,常用的方法有: pub ...
- 【零基础学Java】—字符串的概述和特点(十五)
[零基础学Java]-字符串的概述和特点(十五) 一.字符串的特点 java.lang.String类代表字符串 API当中说:Java程序中的所有字符串字面值(如:"abc")都 ...
- 【零基础学Java】—ArrayList集合概述和基本使用(十四)
[零基础学Java]-ArrayList集合概述和基本使用(十四) 一.什么是ArrayList类以及注意事项 java.util.ArrayList是大小可变的数组的实现,存储在内的数据称为元素,此 ...
- 【零基础学Java】—类的定义(七)
[零基础学Java]-类的定义(七) 一.事物与类的对比 现实世界的一类事物 属性:事物的状态信息 行为:事物能够做什么 Java中用class描述事物也是如此 成员变量:对应事物的属性 成员方法:对 ...
最新文章
- oracle asm clsecho,ASM磁盘组一点管理
- 底部导航栏Bottom navigation规范指南
- Oracle-使用切片删除的方式清理非分区表中的超巨数据
- 登陆状态购物车数据结构
- 无线网卡的Master,Managed,ad-hoc,monitor等模式
- [机器学习] 模型评价参数,准确率,召回率,F1-score
- leetcode338 比特位计数
- 第26月第13天 hibernate导包
- mysql 5.7 延迟同步_完全解决 MySQL 5.7 主从复制的延迟问题
- 自学FPGA第一期:初学FPGA
- 机器学习在电商应用中的三个境界:爆款模型、转化率模型及个性化模型
- 《赖氏经典英语语法》第六集
- GAN-评价指标IS以及FID、KID
- 求不规则立方体表面积java_立方体的表面积怎么求(测算表面积公式全集)
- threw ‘java.lang.NullPointerException‘ exception // toString()
- 彻底搞懂-扔鸡蛋问题-方程-动态规划
- Access key id should not be null or empty.
- 已解决:GET http://localhost:8080/statics/js/jquery-3.4.1.js net::ERR_ABORTED 404
- React Native学习资源汇总
- Java生成与解析二维码
热门文章
- php中如何过滤关键字,PHP - 过滤关键字
- java实现仿微信app聊天功能_Android仿微信语音聊天功能
- 杰伦的《不能说的秘密》の细节 (详解)
- 苏州Uber优步司机奖励政策(8月31日至9月6日)
- 小米路由r2d论坛_小米路由R2D,拼夕夕翻车了没
- oracle的闪存_ORACLEFS1-2闪存存储系统.PDF
- sort函数的用法(C++排序库函数的调用)对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了。
- Docker Nginx 如何重新加载配置
- 四大行、城商行等银行都在使用什么数据库?
- QT之SQLITE3数据库