gpt4 book ai didi

java - 二分查找和对两个数组使用 SortKey - 非常详细 [Java]

转载 作者:行者123 更新时间:2023-12-01 23:54:33 26 4
gpt4 key购买 nike

我正在编写一个程序来读取如下所示的文本文件:

  3679        87
196 60
17914 12
18618 64
2370 65
584 85
18524 34
12024 5
6992 76
18410 56

所以列表是这样设置的,左列是商品 ID,右列是库存中商品的编号(就好像这是一家商店一样)。我需要这个程序做的是,将左列(商品 ID)从最低到最高排序,然后如图所示打印列表,并使其正确的库存量与其对齐。所以它看起来像这样:

    184       14
196 60
206 31
584 85
768 85
2370 65
3433 5
3679 87

etc....

到目前为止,我自己编写的内容是,导入文件,将数字拆分为两个不同的数组,以便我可以使用 Arrays.sort() 对 ID 进行排序。

现在我想做的是,确保如果我对 ID 进行排序,我可以让库存遵循其分配的 ID。我在 Java 文档上进行了一些搜索,找到了 SortKey 函数,我想知道如何使用它?或者这是否是解决这个问题的正确方法。

这是我当前的代码:

   import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Store {

public static void main(String[] args) throws FileNotFoundException {

// **************Scanner s = new
// Scanner(input).useDelimiter("\\s*,\\s*");

ArrayList<String> numbersString = new ArrayList<String>();

ArrayList<Integer> numbers = new ArrayList<Integer>();
ArrayList<Integer> ids = new ArrayList<Integer>();
ArrayList<Integer> inventory = new ArrayList<Integer>();
int arraySize = numbersString.size();

List<Integer> l1 = new ArrayList<Integer>();
List<Integer> l2 = new ArrayList<Integer>();

Scanner s = new Scanner(new FileReader("file50.txt"));

try {

while (s.hasNext()) {
l1.add(s.nextInt());
l2.add(s.nextInt());
}
System.out.print(l1);
System.out.println();
System.out.print(l2);

int[] list1 = new int[l1.size()];
int[] list2 = new int[l2.size()];
ArrayList<Integer> l3 = new ArrayList<Integer>();

for (int x = 0; x <= l1.size() - 1; x++) {

int n = l1.get(x);
list1[x] = n;

}
// System.out.print(Arrays.toString(list1));
for (int p = 0; p <= l2.size() - 1; p++) {

int o = l2.get(p);
list2[p] = o;

}
for(int y = 0; y < l1.size(); y++){


}

Arrays.sort(list1);
Arrays.sort(list2);
//System.out.println();
//System.out.print(Arrays.toString(list1));

}

catch (Exception i) {

i.printStackTrace();
}

}
}

我希望我说得足够有道理,对于如何做我想做的事情的任何建议都会很棒!

谢谢

最佳答案

这个问题适合 map 。 (java中的键值存储)使用 TreeMap(自动提供键的自然排序),因此您根本不需要实现排序。您的任务只是用文件值填充树形图。

关于java - 二分查找和对两个数组使用 SortKey - 非常详细 [Java],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15796515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com