一维数组

  1. //静态初始化一个数组,不能指定数组长度
  2. int[] arr1=new int[]{1,2,3,4,5};
  3. //可简写为 int[] arr1={1,2,3,4,5};
  4.  
  5. //动态初始化一个数组,先指定数组长度,以后再逐个赋值
  6. int[] arr2=new int[5];
  7. arr2[0]=1;
  8.  
  9. //也可以先声明,再初始化
  10. //int[] arr3;
  11. //arr3=.......
  12.  
  13. //数组长度
  14. System.out.println("数组arr1的长度:"+arr1.length);
  15.  
  16. /*
  17. foreach循环可以遍历数组、集合,但只能访问元素的值,不能修改。
  18. 数组的元素类型必须相同,集合的元素类型可以不同
  19. 临时变量表示当前元素
  20. */
  21. for(int i:arr1){
  22. System.out.println(i);
  23. }

二维数组

  1. //每行的元素个数可不同
  2.  
  3. //静态初始化一个二维数组,每行都是一个一维数组
  4. int[][] arr1=new int[][]{
  5. {1,2},
  6. {1,2,3},
  7. {1,2,3,4,5}
  8. };
  9.  
  10. //动态初始化一个二维数组,只需指定行数,列数可缺省,也可写上,以后再逐个元素赋值
  11. int[][] arr2=new int[3][];
  12.  
  13. //同样可以先声明,再初始化
  14. //int[][] arr3;
  15. //arr3=.....

JDK8自带的Arrays类

JDK8自带的Arrays类,提供了大量操作数组的方法,包括索引、排序、比较、赋值、复制等,均为静态方法。
以parallel开头的方法和缺少此前缀的方法效果完全相同,只是parallel开头的方法利用CPU的并行提高了效率,速度更快
View -> Quick Documentation 查看方法说明的快捷键,IDEA为Ctrl+Q

  1. int[] arr1={1,3,2,5,4};
  2.  
  3. //复制
  4. int[] arr2=Arrays.copyOf(arr1,arr1.length);
  5.  
  6. //二分搜索,第二个参数是要搜索的值,返回的索引可能是负数——倒着搜索
  7. System.out.println(Arrays.binarySearch(arr1,2));
  8.  
  9. //排序
  10. Arrays.sort(arr1);
  11. for(int i:arr1){
  12. System.out.print(i+" ");
  13. }
  14.  
  15. System.out.println();
  16.  
  17. //并行排序
  18. Arrays.parallelSort(arr2);
  19. for(int i:arr2){
  20. System.out.print(i+" ");
  21. }
  22.  
  23. System.out.println();

数组实例——将阿拉伯数字转换为最大写

将阿拉伯数字转换为最大写,比如1234转换为壹仟贰佰叁拾肆。

  1. package my_package;
  2.  
  3. public class Transform {
  4. private String[] arr1={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
  5. private String[] arr2={"拾","佰","仟","万"};
  6.  
  7. public static void main(String[] args) {
  8. Transform t=new Transform();
  9. System.out.println(t.transform(12345));
  10. }
  11.  
  12. public StringBuffer transform(int num){
  13. String str=Integer.toString(num);
  14. int length=str.length();
  15. StringBuffer result=new StringBuffer();
  16. //遍历字符串的每一个字符
  17. for(int i=0;i<length;i++){
  18. //char型数值-相应的阿拉伯数字=48,ASCII码值相差48。比如'3'-3=48
  19. int n=str.charAt(i)-48;
  20. //刚好是对应的
  21. result.append(arr1[n]);
  22.  
  23. //不是最后一位,且不为0,就加单位
  24. if(i!=length-1 && n!=0){
  25. result.append(arr2[length-i-2]);
  26. }
  27.  
  28. }
  29. return result;
  30. }
  31.  
  32. }

以上代码只能实现 万 及以下 的转换。


数组实例——实现棋盘落子

五子棋、连连看、俄罗斯方块、扫雷等常见小游戏,都可以通过二维数组实现。

棋盘落子效果图:

源码:

  1. package my_package;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6.  
  7. public class Gobang {
  8. //定义棋盘大小为15*15
  9. private static int BOARD_SIZE=15;
  10. //定义一个二维数组来充当棋盘
  11. private static String[][] board;
  12.  
  13. //初始化棋盘数组
  14. public void initBoard(){
  15. board=new String[BOARD_SIZE][BOARD_SIZE];
  16. //把每个元素赋为“十”
  17. for(int i=0;i<15;i++){
  18. for(int j=0;j<15;j++){
  19. board[i][j]="十";
  20. }
  21. }
  22. }
  23.  
  24. //在控制台打印棋盘
  25. public void printBoard(){
  26. for(int i=0;i<15;i++){
  27. for(int j=0;j<15;j++){
  28. System.out.print(board[i][j]);
  29. }
  30. //打印完一行后换行
  31. System.out.print("\n");
  32. }
  33. }
  34.  
  35. public static void main(String[] args) throws IOException {
  36. Gobang gb=new Gobang();
  37. gb.initBoard();
  38. gb.printBoard();
  39.  
  40. //接收控制台输入棋盘坐标
  41. BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  42. String str=null;
  43. System.out.println("请输入落子点的坐标:");
  44. while((str=br.readLine()) != null){
  45. String[] arr=str.split(",");
  46. int x=Integer.parseInt(arr[0]);
  47. int y=Integer.parseInt(arr[1]);
  48.  
  49. //需要先判断该点是否已有子,若已有子,则不能再落子。此处省略
  50.  
  51. board[x-1][y-1]="●";
  52. //刷新
  53. gb.printBoard();;
  54.  
  55. //每次落子后需判断输赢,进行4次循环扫描,横、竖、左斜、右斜,看是否有5子连着,没有就接着下。此处省略
  56.  
  57. System.out.println("请输入落子点的坐标:");
  58. }
  59. }
  60.  
  61. }

Java 数组实例——将阿拉伯数字转换为最大写的更多相关文章

  1. Java 阿拉伯数字转换为中文大写数字

    Java 阿拉伯数字转换为中文大写数字 /** * <html> * <body> * <P> Copyright 1994 JsonInternational&l ...

  2. JAVA 数组实例-求学生平均成绩,与计算数组的长度

    实例: 知识点:数组名.length是计算数组的长度 import java.util.*; //求学生平均分成绩 public class Test{ public static void main ...

  3. JAVA 数组实例-求学生成绩的最大成绩,获取数组中的最大值、最小值

    实例: import java.util.*; //求学生最大成绩 public class Test{ public static void main(String[] args){ System. ...

  4. Java 数组实例——实现棋盘落子

    五子棋.连连看.俄罗斯方块.扫雷等常见小游戏,都可以通过二维数组实现. 棋盘落子效果图: 源码: package my_package; import java.io.BufferedReader; ...

  5. 把Java数组转换为List时的注意事项

    本文由 ImportNew - 飘扬叶 翻译自 mlangc.欢迎加入翻译小组.转载请见文末要求. 不幸的是并不是每件事都尽如人意.举个例子,现在将一个Java数组转换为List.当然,我们可以使用A ...

  6. 对java数组的一些理解

    刚开始学习Java的时候一直搞不清除获取数组的长度是用length()还是length,现在不妨来深入了解一下数组的真实面目. 我们不妨来看一下数组的源码,诶,数组的类名叫什么?我们声明一个int数组 ...

  7. Java - 数组解析

    java提高篇(十八)-----数组之一:认识JAVA数组 一.什么是数组 数组?什么是数组?在我印象中的数组是应该这样的:通过new关键字创建并组装他们,通过使用整形索引值访问它的元素,并且它的尺寸 ...

  8. Java 数组

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...

  9. 第5章 Java数组

    1.什么是数组 数组可以想象成一个巨大的盒子,这个盒子里面存放的是同一个数据类型的数据 例如:int[] scores = {78,68,94,93}; 2.如何使用Java中的数组 2.1申明数组 ...

随机推荐

  1. js面向对象杂谈

    **万丈高楼平地起** 1. 通过命名规范创建具有私有属性的对象: 以__开头的对象为私有对象,但是实际是能访问到的. 2. 通过自执行函数中,return出来一个对象,return旁边的地方都可以写 ...

  2. 第02组 Alpha冲刺(1/4)

    队名:十一个憨批 组长博客 作业博客 组长黄智 过去两天完成的任务:进行组员分工 GitHub签入记录 接下来的计划:构思游戏实现 还剩下哪些任务:敲代码 燃尽图 遇到的困难:任务分配的不及时,导致很 ...

  3. Linux性能优化实战学习笔记:第六讲1

    一.环境准备 1.安装软件包 终端1 机器配置:2 CPU,8GB 内存 预先安装 docker.sysstat.perf等工具 [root@luoahong ~]# docker -v Docker ...

  4. 转载:tensorflow保存训练后的模型

    训练完一个模型后,为了以后重复使用,通常我们需要对模型的结果进行保存.如果用Tensorflow去实现神经网络,所要保存的就是神经网络中的各项权重值.建议可以使用Saver类保存和加载模型的结果. 1 ...

  5. awk简单应用

    偷懒之人,必定会想方设法的走捷径.如果你想结束多个ID进程,有的人可能会说pkill 和killall.但是有时候不知道为啥 不生效啊 = =! 知道的可以告诉我.刚好最近在学awk 下面命令调用系统 ...

  6. 1-7docke的网络模式

    1.Bridge模式 bridge 模式是 docker 的默认⽹络模式,不写 –net 参数,就是 bridge 模式.比如使⽤ docker run - p 时 工作模式从网上找了一个,如下 例子 ...

  7. 【操作系统之十二】分支预测、CPU亲和性(affinity)

    一.分支预测 当包含流水线技术的处理器处理分支指令时就会遇到一个问题,根据判定条件的真/假的不同,有可能会产生转跳,而这会打断流水线中指令的处理,因为处理器无法确定该指令的下一条指令,直到分支执行完毕 ...

  8. SpringMvc通过controller上传文件代码示例

    上传文件这个功能用的比较多,不难,但是每次写都很别扭.记录在此,以备以后copy用. package com.**.**.**.web.api; import io.swagger.annotatio ...

  9. Maven 教程(16)— pom.xml 文件详解

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79733577 <project xmlns="http://ma ...

  10. Windows进程间各种通信方式浅谈(转)

    转自 https://blog.csdn.net/microzone/article/details/7044266 权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原 ...