2 回答
TA贡献1777条经验 获得超10个赞
您可以读取所有 txt 文件数据并将其存储在键值对中的映射中。键将是数字索引,值将是实际数字。然后从 map 中获取密钥并添加它们各自的值。代码将如下所示:
public class NumberRead{
public static String readFileAsString(String fileName)throws Exception
{
String data = "";
data = new String(Files.readAllBytes(Paths.get(fileName)));
return data;
}
public static void main(String[] args) throws Exception {
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
String data = readFileAsString("-----Your Numbers.txt Path-----");
String[] split = data.split("\\s+");
for(int i=0;i<split.length;i++) {
if(i%2==0) {
map.put(Integer.parseInt(split[i]), Integer.parseInt(split[i+1]));
}
}
Scanner sc = new Scanner(System.in);
System.out.println("Enter First Number Index");
int first = sc.nextInt();
System.out.println("Enter Secound Number Index");
int second = sc.nextInt();
if(map.containsKey(first)&&map.containsKey(second)) {
System.out.println("Addition is: "+((map.get(first))+map.get(second)));
} else {
System.out.println("Indexes are not present");
}
sc.close();
}
}
您的 Numbers .txt 文件应采用以下格式:
1 80
2 85
3 50
4 95
5 75
TA贡献1804条经验 获得超2个赞
不要使用数组列表,而是在java的HashMap(键值对)中使用并存储它。
HashMap<Integer,Integer> map = new HashMap<Integer,Integer>();
map.put(1,80);
map.put(2,85);
// To retrieve the values
map.get(2); // returns 85
因此,值的检索很容易,并且复杂性为O(1)。
添加回答
举报