Java之数组篇

动手动脑,第六次Tutorial——数组

这次的Tutorial讲解了Java中如何进行数组操作,包括数组声明创建使用和赋值运算,写这篇文章的目的就是通过实际运用已达到对数组使用的更加熟练,下面是实践代码之后的感悟与总结:

动手动脑1:PassArray.java

 PassArray.java

观察并分析程序的输出结果:

可以得出如下结论:

  • 按引用传递与按值传送数组类型方法参数的最大关键在于:

    • 使用前者时,如果方法中有代码更改了数组元素的值,实际上是直接修改了原始的数组元素。
    • 使用后者则没有这个问题,方法体中修改的仅是原始数组元素的一个拷贝。

动手动脑2:QiPan.java

 QiPan.java

程序运行输出结果:

棋盘是如何表示的?

整个棋盘是用一个个“+”组成的,共15行15列,所以可以使用一个15X15的二维数组表示,用户下棋的位置用行列位置表示,这样用户下棋的位置所对应的数组元素将由“+”变为“·”。棋盘类结构如下:

1. 私有静态变量BOARD_SIZE,初始值为15;

2. 私有变量二维字符串数组board[][];

3. 共有方法InitBoard(),初始化棋盘;

4. 共有方法PrintBoard(),打印棋盘;

动手动脑3:IntToChinese.java

问题描述:

请编写一个程序将一个整数转换为汉字读法字符串。比如“1123”转换为“一千一百二十三”。

设计思想:

假如说这个整数最高位数不超过9位,那么问题其实并不是很复杂。实现这个功能的方法可以这么定义:

  1. 定义一个大小为10的字符串型数组chineseNumber,初值为:"零","一","二","三","四","五","六","七","八","九";
  2. 定义一个大小为5的字符串型数组chinesePost,初值为:"","十","百","千","万";
  3. 对函数获取的参数num,进行拆解分析位数以及每位上的数字,num如果是String类型的可能会方便一些,结合上面两个数组进行转化汉字即可;

源代码:

 IntToChinese.java

运行结果:

 

拓展程序:

更进一步,能否将数字表示的金额改为“汉字表达? 比如将“¥123.52”转换为“壹佰贰拾叁元伍角贰分”。

实现代码:

 String ToBigLetter(double money)

结果截图:

设计思想:

只需将小数点前面与后面分开,然后分别拆分即可,所用到的方法有:

  String.subString();

  String.indexOf();

具体思想可根据代码中注释加深理解。

动手动脑4:BigNumber.java

问题描述:

利用数组实现大数相加减。

设计思想:

一个数组元素存取一位数字,无论加法还是减法,都是从低位开始运算,即数组的最后一个元素开始运算,加法满10进1,每个数组元素的最高值为9,相加的和a超过9就让前一个数组+a/10,新的元素值就是a%10,如:

 源代码:

 BigNumber.java

运行结果:

时间: 2024-11-08 13:44:46

Java之数组篇的相关文章

每天一点儿JAVA之数组篇--一维和多维数组的初始化和基本操作

<span style="font-family: Arial, Helvetica, sans-serif;"> * <p>Description: 演示一维数组和多维数组的初始化和基本操作</p></span> * <p>Copyright: Copyright (c) 2014</p> * <p>Filename: myArray.java</p> * @author w王海涛 * @

Java数组篇总结

数组(数组篇学于传智和王伟老师) 1.数组:存储同一种数据类型的多个元素的容器. 2.特点:每一个元素都有编号,从0开始,最大编号是长度-1.编号的专业叫法:索引 3.定义格式 3.1):数据类型[] 数组名; 3.2):数据类型 数组名[]; 推荐是用A方式,B方法就忘了吧.但是要能看懂 4.数组的初始化 4.1)动态初始化 只给长度,系统给出默认值 举例:int[] arr = new int[3]; 4.2)静态初始化 给出值,系统决定长度 举例:int[] arr = new int[]

【史上最强JavaSE笔记】之数组篇

各位程序猿,各位攻城狮,各位蜥蜴鸥以及各位棕鲸鲤们~~大家好,我是潘师傅,欢迎大家收看由我为你们带来的[史上最强JavaSE笔记]系列,其实也可以叫[嘻哈JavaSE笔记]的,第一次在博客园发帖,想想还真是有点小激动呢,各位求支持呀,哈哈,那么回归正题,我把自己之前学习积累的笔记拿出来跟大家分享一下,方便大家更好的理解和复习,希望能够对大家有所帮助哈,这次发的是JavaSE方面数组篇的,内容不一定全面哦,欢迎大家前来留言交流哈,不足的地方还望大家多多指出和指导哈~(由于首次发文章,布局可能比较乱

java基础进阶篇(六)_HashTable------【java源码栈】

一.概述 ??前面介绍了HashMap的结构和原理,这里介绍个类似HashMap的结构Hashtable. ??HashTable 官方解释是HashMap的轻量级实现, 和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射. ??所以我们结合HashMap来介绍HashTable, 比较下两者的区别. ??HashTable 使用的很少, 它支持线程安全, 通过内部方法加上 synchronized 实现, 因此同步锁的密度太大了, 在实际情

java基础进阶篇(七)_LinkedHashMap------【java源码栈】

目录 一.概述 二.特点 三.应用场合 四.构造方法 1.参数为空 2.accessOrder 五.源码结构分析 六.常见问题 1.如何实现的元素有序? 2.如何保证顺序的正确以及同步 3.如何实现两种顺序(插入顺序或者访问顺序)? 4.为什么重写containsValue()而不重写containsKey()? 七.常用方法 一.概述 ??LinkedHashMap是HashMap的子类,关于HashMap可以看下前面的章节:java基础进阶篇 HashMap public class Lin

【图文+视频新手也友好】Java一维数组详细讲解(内含练习题答案+详解彩蛋喔~)

目录 视频讲解: 一.数组的概述 二.一维数组的使用 三.Arrays工具类中的sort方法(sort方法用的多,我们具体讲一下) 四.数组中的常见异常 五.一维数组练习题 六.彩蛋(本期视频使用的PPT+[练习题(带答案和详解)]) [新手友好型视频]全面讲解Java一维数组(内含带答案和讲解的练习题彩蛋喔)看完即上手!更有详解版练习题来帮你加深印象~~ 视频讲解: 点击这里即可到小乔的B站观看 一.数组的概述 数组(Array),是存储一系列同类型数据元素的一种数据结构.它通过数组名和一个整

java的数组index[]方括号内是可以进行算数运算的

java的数组index[]方括号内饰可以进行算数运算的 如: String[] stringArray = testString.split("\\."); System.out.println(stringArray[stringArray.length-1]); 2.非静态方法可以调用静态方法 因为静态方法是类加载时期就进行了,非静态方法是运行时期

Java中数组的特性

转载:http://blog.csdn.net/zhangjg_blog/article/details/16116613 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具有固定的长度,并且在内存中占据连续的空间.在C,C++等语言中,数组的定义简洁清晰,而在Java中确有一些会让人迷惑的特性.本文就尝试分析这些特性. Java中的数组是对象吗? Java和C++都是面向对象的语言.在使用这些语言的时候,我们可以直接使用标准的类库,也可以使用组合和继承等面向对象的特性

在java 中,数组与 List&lt;T&gt; 类型的相互转换

在java中,数组与List<T> 之前进行互相转换,转换方法可总结为以下几种: 一. 将 数组转换成List<T> 1. 使用 Collections 的addAll 方法 String[] myStr = {"1","2","4","9","7"}; List<String> listStr = new ArrayList<String>(); Colle