Java学习笔记_05
来源:互联网 发布:淘宝网服务器 编辑:程序博客网 时间:2024/05/21 15:38
一、二维数组
二维数组就是一个元素为一位数组。
初始化方式之一(指定有多少个长度相同的一位数组):
数据类型[][] 变量名 = new 数据类型[m][n];
m表示这个二维数组有多少个一位数组
n表示每一个一维数组中的元素个数
public static void main(String[] args) {//定义一个三个长度不意义样的一位数组的二维数组,并遍历int[][] arr = {{1,2},{3,4,5},{6,7,8,9,0}};//利用for循环遍历二维数组for (int i = 0; i < arr.length; i++) {//拿到每一个一维数组之后,遍历一位数组中的每一个元素for (int j = 0; j < arr[i].length; j++) {System.out.print(arr[i][j]+" ");}System.out.println();}}}二维数组的静态初始化:
静态初始化:
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
简化格式:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
例子: 公司年销售额求和
某公司按照季度和月份统计的数据如下:单位(万元)
第一季度:22,66,44
第二季度:77,33,88
第三季度:25,45,65
第四季度:11,66,99
public static void main(String[] args) {//创建对应的二维数组int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};//遍历二维数组并将每一个元素的值加起来int sum = 0;for (int i = 0; i < arr.length; i++) {//拿到每一个一维数组之后,遍历每一个一维数组,加起来for (int j = 0; j < arr[i].length; j++) {sum+=arr[i][j];}}System.out.println(sum);}}二、形式参数问题
public static void main(String[] args){int a = 10;int b = 20;System.out.println("a:"+a+",b:"+b); //10,20change(a,b);System.out.println("a:"+a+",b:"+b); //?int[] arr = {1,2,3,4,5};change(arr);System.out.println(arr[1]); //4}public static void change(int a,int b) { System.out.println("a:"+a+",b:"+b); //10,20a = b; b = a + b; System.out.println("a:"+a+",b:"+b);/20,40}public static void change(int[] arr) { for(int x=0; x<arr.length; x++) {//如果数组的元素值是偶数,就变为以前的2倍。if(arr[x]%2==0) {arr[x]*=2; }}}}
结论:
如果形式参数是基本类型:
形式参数的改变,不影响实际参数。
如果形式参数是引用类型:
形式参数的该变,直接影响实际参数。
三、数组的高级操作
冒泡排序
基本概念:相邻的两个元素进行比较,小的放前面,大的放后面。
public static void main(String[] args) {int[] arr = { 24, 69, 80, 57, 13 };System.out.println("--------------------");//使用for循环改进上面的代码for (int j = 0; j < arr.length-1; j++) {//外层循环控制比较的次数for (int i = 0; i < arr.length - 1 - j ; i++) {//-1是为了防止数组越界,-j是为了提高比较的效率if (arr[i]>arr[i+1]) {//找一个中间变量int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}}printArr(arr);}//写一个方法打印数组public static void printArr(int[] arr){for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}System.out.println();}选择排序
从0索引开始,依次和后面的每一个元素进行比较
第一次比较完毕,最小值出现在了最小索引处
第二次比较完毕,次小值出现在了次小索引处
...
完毕后,就排序了。
public static void main(String[] args) {int[] arr = { 24, 69, 80, 57, 13 };for (int j = 0; j < arr.length-1; j++) {for (int i = j+1; i < arr.length; i++) {if (arr[j]>arr[i]) {int temp = arr[j];arr[j] = arr[i];arr[i] = temp;}}}printArr(arr);}//写一个方法打印数组public static void printArr(int[] arr){for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}System.out.println();}}Arrays数组工具类
成员方法:
public static String toString(int[] a):把数组转成字符串
public static void sort(int[] a):对数组进行排序(有重载)
public static void main(String[] args) {//public static String toString(int[] a):把数组转成字符串int[] arr = {1,2,4,5,5};//打印上面数组的字符串表示形式String arrStr = Arrays.toString(arr);System.out.println(arrStr);System.out.println("----------");char[] chs = {'a','d','f','g'};String chsStr = Arrays.toString(chs);System.out.println(chsStr);}
0 0
- Java学习笔记_05
- Halcon学习笔记_05:一维码、二维码
- OpenGL_Qt学习笔记之_05(纹理映射)
- Dotnet B/S 架构学习笔记_05(2008-12-09)
- JAVA语言学习_05(关于continue和break)
- Java学习之旅_基础篇_05
- Java线程_05
- java基础总结_05
- EasyUi_学习之路_05
- Flex学习笔记_05 使用组件处理数据和交互_01常用组件
- Flex学习笔记_05 使用组件处理数据和交互_02导航类组件
- javaWeb学习_05:js的元素操作
- 前端学习_05.浮动与定位
- 黑马程序员_05 java异常处理总结
- 黑马程序员_java的网络学习一_05
- JAVA高级01_05 集合类 2011-4-20
- IE+Cortona+JDK(1.3.1,1.6.0_05)+VRML97.jar 无法使用Java脚本,为什么?
- 《Java就业培训教程》_张孝祥_书内源码_05
- python备份脚本
- android列出目录下的所有图片
- 广播接收检测是否连接网络
- 物联网通信协议之MQTT
- Linux发送邮件
- Java学习笔记_05
- jdk+tomcat+myeclipse配置
- PowerManager防止屏幕自动锁屏
- nuvoton ADC采集
- 虚拟机的使用
- EditText的光标选择(android.text.Selection)&输入指定字符
- ios不支持日期yyyy-mm-dd hh:mm:ss.ms,只支持 yyyy/mm/dd hh:mm:ss
- Android 2.3新特性及感应器列表
- UI控件SlidingDrawer,PopupWindow,HorizontalScrollView简单介绍