使用Stack堆栈集合大数据运算
使用Stack堆栈集合大数据运算
package com.sta.to;
import java.util.Iterator;
import java.util.Stack;
public class DaMax {
public void jiaFa(String value1, String value2) {
/**
* 更多资料欢迎浏览凯哥学堂官网:http://kaige123.com
* @author 小沫
*/
// 把字符串用toCharArray拆成字符
char[] c1 = value1.toCharArray();
char[] c2 = value2.toCharArray();
// 申请好2个Stack集合准备把字符放进去
Stack numvalue1 = new Stack();
Stack numvalue2 = new Stack();
// 进栈
for (char c : c1) {
numvalue1.push(c);
}
for (char c : c2) {
numvalue2.push(c);
}
//new好一个缓存池,接收sum
StringBuffer buffer = new StringBuffer();
int jw = 0;//进位
//用常用类Math获取最长的长度
int count = Math.max(c1.length, c2.length);
//把长的拿来循环
for (int i = 0; i < count; i++) {
//用来存放出栈的值
int num1;
int num2;
//每一次出栈的值转为int 才能进行运算
try {
num1 = Integer.parseInt(numvalue1.pop().toString());
} catch (Exception e) {
num1 = 0;//如果异常那就抛出0
}
try {
num2 = Integer.parseInt(numvalue2.pop().toString());
} catch (Exception e) {
num2 = 0;
}
//把num1和num2引用的值加上jw交给sum
int sum = num1 + num2 + jw;
if (sum >= 10) {
//sum大于或等于10 那就要先前一位数进1
jw = 1;
buffer.append(sum % 10);//把总和用取摸后的余数放进缓冲池
} else {
jw = 0;//不大于或等于10 jw就为0 直接把总和交给缓冲池
buffer.append(sum);
}
}
if (jw == 1) {
//问jw还等不等于1,还等于说明最前位数需要多个1 如 99+1=100
buffer.append(1);
}
buffer.reverse();// 把数值反过来
System.out.println(buffer);
}
}
测试类:
package com.sta.to;
import java.nio.Buffer;
public class Test {
public static void main(String[] args) {
DaMax ys = new DaMax();
ys.jiaFa("10", "5");//10+5
ys.jiaFa("15", "50");//15+50
ys.jiaFa("999999999999999", "1");//999...+1
ys.jiaFa("99", "1");//99+1
ys.jiaFa("80", "80");//80+80
ys.jiaFa("8", "7");//8+7
}
}
使用Stack堆栈集合大数据运算的更多相关文章
- 大数据运算模型 MapReduce 原理
大数据运算模型 MapReduce 原理 2016-01-24 杜亦舒 MapReduce 是一个大数据集合的并行运算模型,由google提出,现在流行的hadoop中也使用了MapReduce作为计 ...
- 基本类型包装类、System类、Math类、Arrays类、大数据运算
1 基本类型包装类 Java中想对8种基本数据类型进行复杂操作很困难. 实际程序界面上用户输入的数据都是以字符串类型进行存储的. 程序开发中,需要把字符串转换成指定的基本数据类型. 1.1基本数据类型 ...
- Java—包装类/System类/Math类/Arrays类/大数据运算/Collection接口/Iterator迭代器
基本类型包装类 8种基本类型对应的包装类如: 将字符串转成基本类型: 将基本数值转成字符串有3种方式: 基本类型直接与””相连接即可:34+" " 调用String的valueOf ...
- 17_常用API_第17天(包装类、System、Math、Arrays、大数据运算)_讲义
今日内容介绍 1.基本类型包装类 2.System类 3.Math类 4.Arrays类 5.大数据运算 01基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 ...
- 7、包装类、System、Math、Arrays、大数据运算
基本类型封装 基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字 ...
- JAVA基础之基本类型包装类、System类、Math类、Arrays类及大数据运算
个人理解: 为了方便运算及调用一些方法,我们需要将基本类型的数值转换为对象:不过转换的时候需要特别注意好它们的类型到底是什么,需要调用方法的类名是哪个!特别注意是Byte常量池的相关问题(==):gc ...
- 常用API(包装类、System、Math、Arrays、大数据运算)
常用API 今日内容介绍 u 基本类型包装类 u System u Math u Arrays u BigInteger u BigDecimal 第1章 基本类型包装类 大家回想下,在第二天我们学习 ...
- java基础(17):包装类、System、Math、Arrays、大数据运算
1. 基本类型包装类 大家回想下,在第三篇文章中我们学习Java中的基本数据类型时,说Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢? 1.1 基本类型 ...
- Elastic Stack 开源的大数据解决方案
目的 本文主要介绍的内容有以下三点: 一. Elastic Stack是什么以及组成部分 二. Elastic Stack前景以及业务应用 三. Elasticsearch原理(索引方向) 四. El ...
随机推荐
- 织梦dedecms列表页dede:pagelist分页问题
pagelist是dede定义的一个分页标签.有时直接引用这个标签的时候,会出现分页标签变形问题.我在使用非默认模板的时候就遇到过两次. pagelist本身就有一些样式是在include/arc.l ...
- Xmpp学习之Android-smack入门指导
Xmpp学习之Android-smack入门指导 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/69404 ...
- Iterator invalidation(迭代器失效)
一.vector 所有读操作.swap.std::swap:都不会引起迭代器失效... clear.operator=.assign:都会引起全部变量迭代器失效 reserve.shrink_to_f ...
- PHP·笔记(函数总结)
PHP 指 PHP:超文本预处理器(译者注:PHP: Hypertext Preprocessor,递归命名) PHP 是一种服务器端的脚本语言,类似 ASP PHP 脚本在服务器上执行 PHP 支持 ...
- php练习 租房子
题目要求 1.封装类 <?php class DBDA { public $fuwuqi="localhost"; //服务器地址 public $yonghuming=&q ...
- 使用EF连接Postgresql
环境: VS2017 Community Windows 10 Postgresql 9.6 安装Postgresql: https://www.postgresql.org/download/ 1. ...
- python网络爬虫之LXML与HTMLParser
Python lxml包用于解析html和XML文件,个人觉得比beautifulsoup要更灵活些 Lxml中的路径表达式如下: 在下面的表格中,我们已列出了一些路径表达式以及表达式的结果: 路径表 ...
- ASP.NET Core 源码学习之 Options[2]:IOptions
在上一篇中,介绍了一下Options的注册,而使用时只需要注入IOption即可: public ValuesController(IOptions<MyOptions> options) ...
- Let's Encrypt 免费SSL证书
Let's Encrypt免费又好用的证书,废话不多说. 假设我的域名为:163.org 1.克隆代码 git clone https://github.com/letsencrypt/le ...
- 让textarea和附近的文字居中对齐
textarea {display:inline-block;vertical-align:middle;}