[英]Binary Search and using SortKey for two arrays - Very detailed [Java]
我正在编写一个读取文本文件的程序,如下所示:
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 Docs上进行了一些搜索,找到了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();
}
}
}
我希望我有足够的道理,这对我如何做自己想做的任何建议都非常有用!
谢谢
这个问题使自己适合绘制地图。 (Java中的键值存储)使用TreeMap(自动对键进行自然排序),因此根本不需要实现排序。 您的任务是仅用文件值填充树状图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.