java - JAVA匹配字符串数组到双数组
问题描述
我在完成我正在处理的 java 项目的某个部分时遇到了麻烦。
这些是我制作的数组:
double [][] amortDB = new double[1000][4];
String [][] nameTable = new String[1000][6];
这些是说明:您将客户 ID 号、名字、姓氏、地址、手机号码和年龄存储在一个二维字符串数组中。
您将客户 ID 号、贷款金额和贷款利率(作为 #.# 数字)以及所需的每月付款金额存储在一个二维双数组中
请注意,这里的想法是这两个数组“同步”起来。信息数组中的第一个客户对应贷款信息数组中的第一个客户,以此类推
所以我遇到的麻烦是将每个数组的第一个位置相互匹配,因为客户 ID 应该在两者中匹配。用户应该能够使用扫描仪输入为两个数组中的每个要求输入任何字符串或双精度。我只是迷失了如何将双数组匹配到字符串数组?然后在匹配客户 ID 后,他们应该能够从该客户下输入的任何内容调用其他信息。
任何帮助是极大的赞赏!
解决方案
你的意思是这样的吗?有更优雅的方法可以解决这个问题,但作为一个基本示例,它可以工作。
Map<Integer, Integer> idPositionMap = new HashMap<>();
for (int nameTableIndex = 0; nameTableIndex < nameTable.length; nameTableIndex++) {
String id = nameTable[nameTableIndex][0];
if (id != null) {
double nameTableId = Double.valueOf(id); // Acutal conversion of String to double.
int amortDbIndex = findAmortDbIdIndex(amortDB, nameTableId);
if (amortDbIndex != -1) {
idPositionMap.put(nameTableIndex, amortDbIndex);
}
}
}
idPositionMap.forEach((nameTableIndex, amortDbIndex) -> System.out.println("Index at nameTable: " + nameTableIndex + " Index at amortDb: " + amortDbIndex));
private static int findAmortDbIdIndex(double[][] amortDb, double searchId) {
for (int amortDbIndex = 0; amortDbIndex < amortDb.length; amortDbIndex++) {
double id = amortDb[amortDbIndex][0];
if (id != 0 && id == searchId) {
return amortDbIndex;
}
}
return -1;
}
每个 Id 的行位置存储在内部,idPositionMap
以 nameTable 的 id 的位置为键,在 amortDb 中相同的 id 的匹配位置。
推荐阅读
- indexing - 当我添加 fq 时,在 SOLR 中使用嵌套对象突出显示失败
- mysql - mysql双重触发两个更新一起
- java - 如何在方法调用上重新启动 Handler / Runnable?
- java - 制作随机字符字母并在java swing中一一显示
- python - 具有相同装饰器的 Python 多个函数在 main 中执行
- c - 尽管我 malloc 正确,但指针段错误
- python - 如何在 Debian 上安装 cpython3 和 cpython3-dbg
- java - Junit测试扫描仪输入问题
- ruby-on-rails - ruby on rails 需要的 sqlite3 版本错误
- javascript - Javascript:在 [enter] 上跳转到下一个启用的文本框