[英]Converting Scanner to two ArrayLists, one with of Doubles and one of String
String dataSourceString = "String 43\n String1 50\n String2 45";
Scanner dataSource = new Scanner(dataSourceString);
ArrayList<String> scanString = new ArrayList<String>();
ArrayList<Double> scanDoubleValue = new ArrayList<Double>();
while(dataSource.hasNextLine()) {
scanString.add(dataSource.next());
String stringToDouble = dataSource.next();
Double doubleValue = stringToDouble.parseDouble();
scanDoubleValue.add(doubleValue);
}
The ultimate goal is to convert a list of values of format "String Double"
to a treemap of TreeMap<String, ArrayList<Double>> map = new TreeMap<>();
最终目标是将格式为"String Double"
的值列表转换为TreeMap<String, ArrayList<Double>> map = new TreeMap<>();
I'm getting stuck on writing a loop to separate the two object types.我一直在编写一个循环来分隔两种 object 类型。
Why not write directly into a map, assuming value list is for duplicates为什么不直接写入 map,假设值列表是重复的
String dataSourceString = "String 43\n String1 50\n String2 45";
Scanner dataSource = new Scanner(dataSourceString);
ArrayList < String > scanString = new ArrayList < String > ();
ArrayList < Double > scanDoubleValue = new ArrayList < Double > ();
Map < String, List < Double >> map = new TreeMap <> ();
while (dataSource.hasNextLine()) {
String key = dataSource.next();
Double value = Double.parseDouble(dataSource.next());
if (map.containsKey(key)) {
map.get(key).add(value);
} else {
List < Double > valueList = new ArrayList();
valueList.add(value);
map.put(key, valueList);
}
}
Try this:尝试这个:
import java.util.*;
import java.util.List;
import java.lang.Double;
public class DeleteFromList {
public static void main(String[] args) {
String dataSourceString = "String 43\n String1 50\n String2 45";
Scanner dataSource = new Scanner(dataSourceString);
ArrayList<String> scanString = new ArrayList<String>();
ArrayList<Double> scanDoubleValue = new ArrayList<Double>();
while(dataSource.hasNextLine()) {
scanString.add(dataSource.next());
String stringToDouble = dataSource.next();
//your line hase the following and I changed it
//Double doubleValue = stringToDouble.parseDouble();
Double doubleValue = Double.parseDouble(stringToDouble);
scanDoubleValue.add(doubleValue);
}
System.out.println(scanString);
System.out.println(scanDoubleValue);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.