比较两个有序集合
来源:互联网 发布:2017年mac游戏推荐 编辑:程序博客网 时间:2024/05/18 01:58
运用场景(交易所深度增量推送)
- [[411.8,6],[411.75,11],[411.6,22],[411.5,9],[411.3,16]]
- [[411.8,5],[411.7,11],[411.5,22],[411.5,9],[411.3,1]]
import java.util.ArrayList;import java.util.List;public class two { public static void main(String[] args) { /** * 两个集合是有序的,从大到小的 * * 1).集合now有集合old没有的 ,添加 * * 2).集合now有集合old有的的 ,舍弃 * * 3).集合now没有但是集合old有的 ,数量标志位0 * * 4).集合now有集合old也有的 但是数量不一致的 变更 */ //String[] 长度为2 第一个数据为价格,第二个数据为数量 List<String[]> now = new ArrayList<String[]>(); List<String[]> old = new ArrayList<String[]>(); StringBuilder data = new StringBuilder();// 用于拼接最后的数据 int oldSize = old.size(); int nowSize = now.size(); int index = 0; // now 集合索引 int last_index = 0;// old 集合索引 for (int i = 0, size = oldSize + nowSize; i < size; i++) { if (last_index >= oldSize && index >= nowSize) {//如果两个数据的每个元素都一致 break; } double price = -1d; String amount = ""; if (index < nowSize) { price = Double.parseDouble(now.get(index)[0]); amount = now.get(index)[1]; } double lastPrice = -1d; String lastAmount = ""; if (last_index < oldSize) { lastPrice = Double.parseDouble(old.get(last_index)[0]); lastAmount = old.get(last_index)[1]; } if (price == lastPrice) { if (!amount.equals(lastAmount)) { data.append("[" + price + "," + amount + "],"); } last_index++; index++; } else if (price > lastPrice) { data.append("[" + price + "," + amount + "],"); index++; } else if (price < lastPrice) { data.append("[" + price + "," + 0 + "],"); last_index++; } } }}
0 0
- 比较两个有序集合
- 比较两个集合
- 两个集合如何比较
- 【算法】找两个有序集合的交集
- 两个非递减有序集合合并为一个非递减有序集合
- Java 两个有序集合 求交集 差集
- 两个有序数组归并的平均比较次数的定量分析
- 比较两个有序数组中是否有相同数字
- 比较两个集合中的交集元素
- C#两个复杂对象集合的比较
- 求两个集合交集的方法比较
- 关于两个集合进行比较,更新
- 如何比较两个集合是否相等
- 怎样比较两个集合是否相等
- 面试题:比较两个集合是否相等?
- 比较两个list集合是否相等
- 两个有序数组(有序段sorted run)简单归并算法的比较次数的分析
- 采用递增有序的顺序表表示集合,求解两个集合的交、并集
- 蓝牙、红外线与wifi 区别以及不同频段无线电磁波的穿墙和绕过障碍物能力
- 域名解析中A记录、CNAME、MX记录、NS记录的区别和联系
- 布局管理
- android eclipse ndk javah javap
- SetTimer 定时器的使用
- 比较两个有序集合
- C++学习 C++函数模板与类模板实例解析
- 在操作系统中,进程之间是如何通信的?
- 各种排序算法的稳定性
- Linux-(6)Vi/Vim的基本操作
- iphone 持久性存储
- Java中enum用法详解
- SQlite的使用
- 熟悉Visual C++ IDE