Java随堂小记05

  • 数组
  • 数组的常见异常
  • 三种数组的初始化
  • 数组的使用
  • 二维数组
  • Arrays类
    • 打印数组:Arrays.toString(变量名)
    • 升序排序:Arrays.sort(arr)
    • 冒泡排序
    • 数组填充:Arrays.fill()
  • 稀疏棋盘

数组

每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们

定义: int [] nums;

存放10个int类型的数据: nums = new int[10];

    int[] nums = new int[10];//和Scanner s1=new Scanner(System.in)一样
package www.Dongyi.Scanner;public class Demo8 {public static void main(String[] args) {int[] nums = new int[10];nums[0] = 1;nums[1] = 2;nums[2] = 3;nums[3] = 4;nums[4] = 5;nums[5] = 6;nums[6] = 7;nums[7] = 8;nums[8] = 9;nums[9] = 10;int sum = 0;for (int i = 0; i < nums.length; i++) {sum+=nums[i];}System.out.println(sum);}
}

数组的常见异常

1. 数组下标越界异常:ArrayIndexOutOfBoundsException

下标的合法区间:[0,length - 1];

public static void main(String[] args) {int[] x = { 1, 2, 3 };System.out.println(x[3]);
}
  1. 空指针异常:NullPointerException
public static void main(String[] args) {int[] x = { 1, 2, 3 };x = null;System.out.println(x[1]);
}

三种数组的初始化

1、静态初始化:创建 + 赋值
int[] arr1 = { 1, 2, 3, 4, 5 };
int[] arr2 = new int[] { 1, 2, 3, 4, 5 };2、动态初始化:包含默认初始化,即未赋值的系统会自动为你赋值0
int[] arr3=new int[3];
arr3[0]=1;
arr3[1]=2;
System.out.println(b[1]);//值为0

数组的使用

增强型for循环,省略了下标,不利于操作数组元素

package www.Dongyi.Scanner;public class DemArrays {public static void main(String[] args) {int[] arrays = {1,2,3,4,5};for (int array : arrays) {System.out.println(array);}}
}

翻转数组:

package www.Dongyi.Scanner;public class DemArray02 {public static void main(String[] args) {int[] arrays = {1,2,3,4,5};printArray(arrays);//打印System.out.println();//先输出再换行int[] reverse = reverse(arrays);printArray(reverse);//打印}public static void printArray(int[] arrays){//打印for (int i = 0; i < arrays.length; i++) {System.out.print(arrays[i]+" ");}}public static int[] reverse(int[] arrays){//逆置for (int i=0;i< arrays.length/2;i++) {int temp = arrays[i];arrays[i] = arrays[arrays.length-i-1];arrays[arrays.length-i-1]=temp;}return arrays;}
}

二维数组

遍历

package www.Dongyi.Scanner;public class DemoArrays03 {public static void main(String[] args) {int[][] array = {{1,2},{2,3},{3,4},{4,5}};printArray(array);}public static void printArray(int[][] arrays){//打印for (int i = 0; i < arrays.length; i++) {for (int j = 0; j < arrays[i].length; j++) {System.out.print(arrays[i][j]+" ");}System.out.println();}}
}

Arrays类

导包:import java.util.Arrays

打印数组:Arrays.toString(变量名)

package www.Dongyi.Scanner;import java.util.Arrays;public class DemoToString {public static void main(String[] args) {int[] arr = {1,3,56,78,4245,53675,786,46};System.out.println(arr);//[I@1b6d3586,这是一个hashcode,输出对象System.out.println(Arrays.toString(arr));System.out.println("===============================");printArray(arr);}public static void printArray(int[] arr){for (int i=0;i<arr.length;i++){if(i==0){System.out.print("[");}if(i== arr.length-1){System.out.print(arr[i]+"]");}else {System.out.print(arr[i]+", ");}}}
}

升序排序:Arrays.sort(arr)

        int[] arr ={23,26,46,889,357,295,725};Arrays.sort(arr);System.out.println(Arrays.toString(arr));

冒泡排序

package www.Dongyi.Scanner;import java.util.Arrays;public class bubbleSort {public static void main(String[] args) {int[] arr ={23,76,46,889,357,295,725};System.out.println("排序前");System.out.println(Arrays.toString(arr));System.out.println("排序后");bubbleSort(arr);System.out.println(Arrays.toString(arr));}public static void bubbleSort(int[] arr){boolean flag = false;//通过flag标识位减少没有意义的比较int temp=0;for(int i=0;i< arr.length;i++){for (int j=0;j< arr.length-i-1;j++){if(arr[j]>arr[j+1]){temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;flag=true;}}if (flag==false){break;}}}
}

数组填充:Arrays.fill()

import java.util.Arrays;
public class ArrayFill {public static void main(String[] args) {int[] a = {37,45,67,23,7};//数组填充Arrays.fill(a,0);System.out.println(Arrays.toString(a));//指定填充Arrays.fill(a,2,4,0);//下边2到4变为0System.out.println(Arrays.toString(a));}
}

稀疏棋盘

for.each循环,遍历数组的简单写法

package www.Dongyi.Scanner;public class DemoArrays04 {public static void main(String[] args) {//1、创建一个二维数组11*11   0:没有棋子  1:黑棋    2:白棋int[][] array = new int[11][11];array[1][2] = 1;array[2][3] = 2;System.out.println("原始数组:");for (int[] ints : array) {for (int anInt : ints) {System.out.print(anInt+"\t");}System.out.println();}//获取有效值的个数int sum = 0;for (int i = 0; i < array.length; i++) {for (int j = 0; j < array[i].length; j++) {if(array[i][j]!=0){sum++;}}}System.out.println("有效值个数:"+sum);//2.创建一个稀疏数组int[][] array2 = new int[sum+1][3];//3列,分别是行、列、有效值array2[0][0] = 11;//总共有11行array2[0][1] = 11;//总共有11列array2[0][2] = sum;//有效值是sum个int count = 0;for (int i = 0; i < array.length; i++) {for (int j = 0; j < array[i].length; j++) {if(array[i][j]!=0){count++;array2[count][0] = i;//行array2[count][1] = j;//列array2[count][2] = array[i][j];//有效值}}}//打印稀疏数组System.out.println("稀疏数组:");System.out.println("行\t"+"列\t"+"有效值\t");for (int i = 0; i < array2.length; i++) {for (int j = 0; j < 3; j++) {System.out.print(array2[i][j]+"\t");}System.out.println();}System.out.println("===========================");System.out.println("还原");//1.读取稀疏数组int[][] array3 = new int[array2[0][0]][array2[0][1]];//第0行0列:总行数   第0行1列:总列数//2.给元素还原它的值for(int i = 1;i< array2.length;i++){array3[array2[i][0]][array2[i][1]] = array2[i][2];//array3[行][列] = 有效值//即把有效值按照有效值坐标的位置赋值给新数组,其余系统默认为0}System.out.println("还原数组:");for (int[] ints : array3) {for (int anInt : ints) {System.out.print(anInt+"\t");}System.out.println();}}}

Java随堂小记05相关推荐

  1. Java随堂小记09(GUI)

    Java随堂小记09 异常处理机制 自定义异常 GUI编程 Frame窗口 Panel 面板 三种布局管理器 流式布局 FlowLayout:从左到右 东南西北中 BorderLayout 表格布局 ...

  2. java随堂练习05,编写一个程序,为一个给定的年份找出其对应的中国生肖

    /*** 编写一个程序,为一个给定的年份找出其对应的中国生肖.* 中国的生肖基于12年一个周期,每年用一个动物代表:* rat(鼠).ox(牛).tiger(虎).rabbit(兔).dragon(龙 ...

  3. Java虚拟机JVM学习05 类加载器的父委托机制

    Java虚拟机JVM学习05 类加载器的父委托机制 类加载器 类加载器用来把类加载到Java虚拟机中. 类加载器的类型 有两种类型的类加载器: 1.JVM自带的加载器: 根类加载器(Bootstrap ...

  4. java基础小记_[Java教程]Java基础学习小记

    [Java教程]Java基础学习小记 0 2016-10-07 18:00:07 题外话:总结了多年的学习心得,不得不说,睡眠是一个学习者的必需品!所谓"早起毁一天"不是没有道理哪 ...

  5. JAVA泡泡堂网络游戏的设计与实现

    泡泡堂网络游戏的设计与实现 摘  要 网络游戏开发是一项很大的工程,需要很多综合性的知识.这对于刚刚入门的开发者来说很难理解.本论文从研究开发一个模仿泡泡堂网络游戏的例子出发,讲述网络游戏开发中用到的 ...

  6. JAVA泡泡堂网络游戏的设计与实现免费源代码+LW

    1 需求分析 本设计主要是实现一个类似于"泡泡堂"功能的网络游戏.其操作流程及其主要功能如下介绍 1.1游戏的操作流程 游戏的操作类似于网络游戏QQ堂.其操作流程如图1所示. 1. ...

  7. java基础知识-小记

    java基础-复习随笔小记 重载 方法重载 1.指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返 回值类型无关. 2.参数列表:个数不同,数据类型不同,顺序不同. ...

  8. FXGL JAVA游戏引擎 教程 05.场景 (萌妹在线哭泣)

    上文中,我们已经有了一个漂亮的人物角色,但是对于一个游戏而言,除了可操控的游戏角色,各种弹出框也是必须设计考虑的一部分. 比如你希望播放一个过场动画,弹出一个对话框,打开背包栏目等等. 为了实现以上功 ...

  9. 【每周Java技术】2022.05.16 周一 ~ 2022.05.22 周日(Srping Boot | 二叉树 | Docker | 微服务/云原生)

    文章目录 01. 05.16 周一 1.1)Spring Boot 1.1.1) Spring Boot的组成部分 1.1.2) 了解自动配置的实现原理 1.2)数组降序 02. 05.19 周四 1 ...

最新文章

  1. python---random模块使用详解
  2. python3连接oracle教程,Pycharm中Python3连接Oracle
  3. Sqlserver2005 with as 实现分页以提高性能
  4. Kubernetes——自动扩展容器!假设你突然需要增加你的应用;你只需要告诉deployment一个新的 pod 副本总数即可...
  5. Win10安装Latex
  6. 划重点丨详解Java流程控制语句知识点
  7. 蚂蚁战配基金已售罄两只 累计关注人数超500万
  8. Introduction to Real-Time Kernels
  9. 苹果欲把 Swift 扶上位!
  10. aix mysql日志,一次AIX 操作系统ASM添加磁盘的操作日志
  11. 定量论文:探究「健康水平、婚姻状况」对幸福感的影响
  12. ARMv8的OP-TEE源代码的获取和编译
  13. php 递归函数 示例,php递归使用示例(php递归函数)_PHP
  14. esp8266~获取mpu6050六轴传感器数据 [可在此基础上做wifi平衡小车]
  15. LCL三相pwm整流器(逆变器)
  16. android 横向竖排文字,GitHub - tung666/AdvancedTextView: 一个增强的TextView库。可以实现文字两端对齐,文字竖排,以及自定义选择文字后的弹出菜单。...
  17. 其他技术 网易云音乐Mp3,通过网易官方搜索引擎获取mp3外链
  18. spark-sql-perf
  19. 读懂DeFi四大金融原语的演变:流动性、杠杆、风险和套利
  20. [bat] cmd命令进入用户登录界面和屏幕保护程序

热门文章

  1. indemind imsee 双目视觉惯性相机 SDK安装
  2. 【工具使用篇】Sublime Text 3 全程详细图文使用教程
  3. .Net验证15位身份证格式
  4. 七、磁盘占用率100%的解决方案
  5. php已知公鸡每只5元,公鸡3元一只,母鸡5元1只,小鸡3只1元,一百元共买100只鸡,请用php编写程序计算机多少只公鸡、母鸡和小鸡,请将代码和结果截图上传平台。...
  6. 基于SBA的5G核心网络架构详解
  7. 苍蓝誓约服务器维护什么时候结束,《苍蓝誓约》3月11日09:30停服维护公告
  8. 虚拟专用网VPN(计算机网络-网络层)
  9. Windows Mobile BLOG FAQ 2006.12.13
  10. cmd静默start命令打开带空格文件夹或文件(静默自动打开虚拟机)