how2j:JAVA学习笔记——DAY4
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相关推荐
- how2j:JAVA学习笔记——DAY 9
1.格式化输出 在输出多个字符时,一般用"+"连接,如果变量较多,拼接就会变得很繁琐.当使用格式化输出时,就能非常简洁的表示. %s表示字符串,%d表示数字,%n换行. ...
- how2j:JAVA学习笔记——DAY 8
1.封装类 JAVA是一种面向对象语言,JAVA中的类把方法和数据连接在一起,构成了自包含式的处理单元.在JAVA在不能定义基本类型对象,为了能将基本类型视为对象进行除了,并能连接相关方法,JAV ...
- java学习笔记11--Annotation
java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...
- java学习笔记13--反射机制与动态代理
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...
- 准备写java学习笔记
准备写java学习笔记 java int 转载于:https://blog.51cto.com/cryingcloud/1975267
- Java学习笔记--StringTokenizer的使用
2019独角兽企业重金招聘Python工程师标准>>> Java Tips: 使用Pattern.split替代String.split String.split方法很常用,用于切割 ...
- java学习笔记12--异常处理
java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...
- Java学习笔记(十)--控制台输入输出
输入输出 一.控制台输入 在程序运行中要获取用户的输入数据来控制程序,我们要使用到 java.util 包中的 Scanner 类.当然 Java 中还可以使用其他的输入方式,但这里主要讲解 Scan ...
- java学习笔记16--I/O流和文件
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input Output)流 IO流用来处理 ...
最新文章
- python单片机自动浇花_[MicroPython]TPYBoardv102自动浇花系统
- c语言三个数按大小排列怎么编程,C语言三个数排列大小的实现方法
- Zabbix 3.4.3 使用阿里云短信服务进行报警
- 值得研究的 开源数据库
- innerHTML的用法
- mysql选中一行数据_获取table选中一行数据库
- 20150324 作业1(升级喽)
- 15-struct(构造函数,重载)
- 在使用JEDate时间控件时,不能捕捉到input的change事件的解决办法
- chrome浏览器安装印象笔记插件
- js实现canvas在线画板
- 图像处理/opencv/C++:图像马赛克
- IAP固件升级原理及实现详解
- PAT 甲级 1118 Birds in Forest (25 分)
- 外贸电商:除了paypal,这些支付方式也能帮到你
- windows 环境MySQL 安装启动 、重新安装
- 批处理:批量修改文件名称
- Nachos进程数量限制128、ID号分配以及基于优先级的调度算法详解
- wps怎么把字缩到最小_wps怎么把最左侧的字体变小
- 计算机英语反思总结怎么写,英语考试反思总结
热门文章
- 鲜花绿植学生网页设计模板 静态HTML鲜花学生网页作业成品 DIV CSS网上鲜花植物主题静态网页
- 计算机毕业设计ssm高校体质测试管理系统dp69w系统+程序+源码+lw+远程部署
- Microsoft Teams Voice语音落地系列-4 实战:Teams语音路由规划与配置
- 详解微信「看一看」多模型内容策略与召回
- Apipost私有化部署活动即将火热开启,企业无忧
- 角平分线上的点到角两边的距离相等易混淆点
- 网络通讯学习(1)---TCP通讯
- 修改 Outlook 数据文件默认保存位置
- 第十四届蓝桥杯大赛软件赛省赛(Java 大学B组)
- 计算机毕业设计Java医院药品管理系统(系统+源码+mysql数据库+Lw文档)