1.数组

数组是一个固定长度的,包含了相同数据类型的容器。

2.声明数组

数据类型[] 变量名 or 数据类型 变量名[]

[]:表示该变量是一个数组

int:表示数组中所有元素的数据类型

但是声明数组并不代表创建数组。

3.创建数组

创建数组时要指明数组长度:new int[5]

引用:若变量代表一个数组,则称该变量为引用。

引用与赋值:

int c=5,表示c赋值为5。

a=new int[5],表示让a这个引用指向数组。

e.g. int[] b =new int[5];//声明数组b的同时使其指向一个元素个数为5的数组。

4.访问数组

数组下标为0代表数组的第一个元素。

5.数组长度

.length属性用于访问一个数组的长度。数组访问下标范围为[0,length-1],一旦超过这个范围,就会产生数组下标越界异常。

6.数组初始化

①、分配空间与赋值分步进行

int[] a=new int[4];
System.out.println(a[0]);//若没有赋值,则int类型的数组默认值为0//进行赋值
a[0]=6;
a[1]=7;
a[2]=8;
a[3]=9;

②、分配空间与赋值同时进行

int[] a=new int[]{6,7,8,9,5};//写法一:分配空间同时赋值
int[] b={1,2,3,4,5};//写法二:省略了new int[],效果一样
//注:若指定了数组的内容,就不能同时设置数组长度,如
//int[] c = new int[3]{100,102,444,836,3236};这种写法是错误的因为长度为3,内容为5产生矛盾了

7.排序

①、选择法排序

正排序

​ 先把数组中的第一位a[0]和其他所有位a[i]进行比较,只要比第一位小就把该数交换到第一位。比较完以后,第一位就是所有元素中最小的数。

int temp;
if(a[i]<a[0]){temp=a[0];
a[0]=a[i];
a[i]=temp;
}
//和第一个数进行比较,i应该从1开始

​ 把第二位a[1]和其他所有位a[i]进行比较,只要比第二位小就把该数交换到第二位。比较完以后,第二位就是所有元素中第二小的数。

int temp;
if(a[i]<a[1]){temp=a[0];
a[0]=a[i];
a[i]=temp;
}
//和第二个数进行比较,i应该从2开始

​ 以此类推。观察上述两式,可以发现交换是从第一位开始的,所以以上所有可以写成:

int a [] = new int[]{18,62,68,82,65,9};
for(int j=0;j<a.length-1;j++){for(int i=j+1;i<a.length;i++){if(a[i]<a[j]){int temp=a[j];a[j]=a[i];a[i]=temp;}}
}for(int i=0;i<a.length;i++){System.out.println("从小到大排序后的数组元素:"+a[i]);
}

倒排序

int a [] = new int[]{18,62,68,82,65,9};
for(int j=0;j<a.length-1;j++){for(int i=j+1;i<a.length;i++){if(a[i]>a[j]){int temp=a[j];a[j]=a[i];a[i]=temp;}}
}for(int i=0;i<a.length;i++){System.out.println("从小到大排序后的数组元素:"+a[i]);
}

②、冒泡排序

正排序

​ 第一步:从第一位开始,把相邻两位(a[0]与a[1]、a[1]与a[2]……a[i]与a[i+1])进行比较,将数更大的往后移,直到将最大的数移到最后一位。

if(a[i]>a[i+1]){int temp=a[i];a[i]=a[i+1];a[i+1]=temp;
}

​ 第二步:从第一位开始,把相邻两位进行比较,将数更大的放在后面,直到将第二大的数放在倒数第二个位子(不用和最后一位进行比较)。

​ 以此类推。

​ 外层循环表示排序次数(等于元素个数-1),内层循环表示排序元素下标(等于数组长度-1-i)(数组长度-1表示最大下标)(i表示外层循环排序序数,当i=元素个数-1时就不用再进行排序,因为后面的数已经是排好的,第一个数一定为数组中最小的数。)。

int[] arr=new int[10];
for(int i=0;i<arr.length;i++)}{arr[i]=(int) Math.random()*100;
}
//给数组中元素赋值for(int i=0;i<arr.length;i++){for(int j=0;j<arr.length-1-i;j++){if(arr[j]>arr[j+1]){int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}
}

倒排序

int[] arr=new int[10];
for(int i=0;i<arr.length;i++)}{arr[i]=(int) Math.random()*100;
}
//给数组中元素赋值for(int i=0;i<arr.length;i++){for(int j=0;j<arr.length-1-i;j++){if(arr[j]<arr[j+1]){int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}
}

how2j:JAVA学习笔记——DAY4相关推荐

  1. how2j:JAVA学习笔记——DAY 9

    1.格式化输出 ​ 在输出多个字符时,一般用"+"连接,如果变量较多,拼接就会变得很繁琐.当使用格式化输出时,就能非常简洁的表示. ​ %s表示字符串,%d表示数字,%n换行. ​ ...

  2. how2j:JAVA学习笔记——DAY 8

    1.封装类 ​ JAVA是一种面向对象语言,JAVA中的类把方法和数据连接在一起,构成了自包含式的处理单元.在JAVA在不能定义基本类型对象,为了能将基本类型视为对象进行除了,并能连接相关方法,JAV ...

  3. java学习笔记11--Annotation

    java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...

  4. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

  5. 准备写java学习笔记

    准备写java学习笔记 java int 转载于:https://blog.51cto.com/cryingcloud/1975267

  6. Java学习笔记--StringTokenizer的使用

    2019独角兽企业重金招聘Python工程师标准>>> Java Tips: 使用Pattern.split替代String.split String.split方法很常用,用于切割 ...

  7. java学习笔记12--异常处理

    java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...

  8. Java学习笔记(十)--控制台输入输出

    输入输出 一.控制台输入 在程序运行中要获取用户的输入数据来控制程序,我们要使用到 java.util 包中的 Scanner 类.当然 Java 中还可以使用其他的输入方式,但这里主要讲解 Scan ...

  9. java学习笔记16--I/O流和文件

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理 ...

最新文章

  1. python单片机自动浇花_[MicroPython]TPYBoardv102自动浇花系统
  2. c语言三个数按大小排列怎么编程,C语言三个数排列大小的实现方法
  3. Zabbix 3.4.3 使用阿里云短信服务进行报警
  4. 值得研究的 开源数据库
  5. innerHTML的用法
  6. mysql选中一行数据_获取table选中一行数据库
  7. 20150324 作业1(升级喽)
  8. 15-struct(构造函数,重载)
  9. 在使用JEDate时间控件时,不能捕捉到input的change事件的解决办法
  10. chrome浏览器安装印象笔记插件
  11. js实现canvas在线画板
  12. 图像处理/opencv/C++:图像马赛克
  13. IAP固件升级原理及实现详解
  14. PAT 甲级 1118 Birds in Forest (25 分)
  15. 外贸电商:除了paypal,这些支付方式也能帮到你
  16. windows 环境MySQL 安装启动 、重新安装
  17. 批处理:批量修改文件名称
  18. Nachos进程数量限制128、ID号分配以及基于优先级的调度算法详解
  19. wps怎么把字缩到最小_wps怎么把最左侧的字体变小
  20. 计算机英语反思总结怎么写,英语考试反思总结

热门文章

  1. 鲜花绿植学生网页设计模板 静态HTML鲜花学生网页作业成品 DIV CSS网上鲜花植物主题静态网页
  2. 计算机毕业设计ssm高校体质测试管理系统dp69w系统+程序+源码+lw+远程部署
  3. Microsoft Teams Voice语音落地系列-4 实战:Teams语音路由规划与配置
  4. 详解微信「看一看」多模型内容策略与召回
  5. Apipost私有化部署活动即将火热开启,企业无忧
  6. 角平分线上的点到角两边的距离相等易混淆点
  7. 网络通讯学习(1)---TCP通讯
  8. 修改 Outlook 数据文件默认保存位置
  9. 第十四届蓝桥杯大赛软件赛省赛(Java 大学B组)
  10. 计算机毕业设计Java医院药品管理系统(系统+源码+mysql数据库+Lw文档)