java - 如何将列表填写到我的 HashMap 中?
问题描述
首先我有三门课:
数据.java:
public class Data {
public static List<String> studentdataget(){
List<String> studentData = new ArrayList<String>();
// Format:
// Name ; Number ; Subject
studentData.add("Quee;810283;MathI");
studentData.add("Hor;812227;Math I");
studentData.add("Oper;810369;Math II");
studentData.add("Graf;811090;MathI");
studentData.add("Ingri;811911;MathI");
学生.java:
public class Student {
private static String name = "";
private static int number = 0;
private static String subject = "";
public Student(String name, int number, String subject) {
this.name = name;
this.number = number;
this.subject = subject;
}
public static String getnumber(String segs) {
return number;
}
public static int getnumber(String segs) {
return number;
}
public static String getName() {
return name;
}
public void setsubject(String subject) {
this.subject = subject;
}
public void setnumber(int number) {
this.number = number;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
String returnString = name + " (" + number + "), Subject: " + subject;
return returnString;
}
}
主.java:
public class main {
public static void main(String[] args) {
String path = "Name;number;subject";
String[] segs = path.split( Pattern.quote( ";" ) );
//System.out.println( (segs[2]));
HashMap<String, String> studentData = new HashMap<String, String>();
studentData.put(segs[1],segs[2]);
for (Map.Entry<String, String> pair: studentData.entrySet()) {
System.out.format("key: %s, value: %s\n", pair.getKey(), pair.getValue());
}
for(Map.Entry<String, String> pair: studentData.entrySet()) {
}
}
}
所以问题是如何从我的 Data.class 中放入我的第二个 for 循环列表?我只想显示数字和主题这可能吗?我尝试了很多方法,但没有人让我找到解决方案..我希望有人能给我一个解决方案
解决方案
studentData
要从另一个类访问该方法,您可以使用此表示法Data.studentdataget();
,因为studentdataget()
is static。
您只需在yout 列表的每个条目中split()即可将它们拆分为. 因此,您可以使用最后两个索引来获取所需的数据。;
[Quee, 810283, MathI]
这假设所有数据studentData
保持一致。
public static void main(String[] args) {
List<String> students = Data.studentdataget(); // access Data here
HashMap<String, String> classes = new HashMap<>();
// fill our map from the data found in Data.studentdataget
for (String student: students) {
String[] arr = student.split(";"); // split string into array on each ;
classes.put(arr[1], arr[2]); // fill map based on student data set
}
// print the map
for (Map.Entry<String, String> entry : classes.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
推荐阅读
- php - 如何在自定义循环中获得 woocommerce 可变产品的最低和最高价格?
- c - 从 C 项目中提取所有枚举的最佳方法
- javascript - Web Components: Is there an equivalent to attributeChangedCallback for properties?
- swift - 具有圆形背景的自定义分段控件
- javascript - 有没有办法将 Firefox 的窗口宽度调整为 100 像素?或者有没有其他浏览器可以让我的窗口宽度低于 100 像素?
- android - 将 viewModelScope 与 LiveData 一起使用时出现问题
- r - 在 Shiny App 的 Filter dplyr 中将函数作为参数传递
- javascript - 添加自定义图像以在材质 ui 底部导航中制作图标
- autocomplete - Algolia 自动完成 - 如何以英语显示自动完成建议?
- java - 我使用数组和方法编写了一个代码来显示最小或最大数字的数字