如何在Java中创建2D ArrayList?
我正在使用java创建一个基本的SQL编辑器,我想知道如何创建一个2d数组,将每个“Persons”数据存储在一个arraylist中。我有一个名为contactdetails的数据库,其中存储了每个人的联系ID、全名、电子邮件、电话号码等。我只是想看看是否有人可以在评论中输入一些代码,告诉我如何处理这个问题?以下是我用于从数据库检索的当前代码:如何在Java中创建2D ArrayList?,java,jdbc,resultset,Java,Jdbc,Resultset,我正在使用java创建一个基本的SQL编辑器,我想知道如何创建一个2d数组,将每个“Persons”数据存储在一个arraylist中。我有一个名为contactdetails的数据库,其中存储了每个人的联系ID、全名、电子邮件、电话号码等。我只是想看看是否有人可以在评论中输入一些代码,告诉我如何处理这个问题?以下是我用于从数据库检索的当前代码: public void SELECTALL() { db.Connnect(); Connection conn = db.getCo
public void SELECTALL() {
db.Connnect();
Connection conn = db.getConnection();
if (conn!=null) {
try {
String SQL = "SELECT * FROM (?);";
PreparedStatement stmt = conn.prepareStatement(SQL);
//Gathering which table the user wants to view
Scanner s = new Scanner(System.in);
System.out.println("Enter name of table");
String TABLENAME = s.nextLine();
//Inserting table name into SQL command
stmt.setString(0, TABLENAME);
//Executing query
ResultSet rs = stmt.executeQuery();
//Displating data to user
while (rs.next()) {
//DATA GETS STORED IN 2D ARRAY SO EACH PERSON GETS OWN PERSONAL INTEGER TO BE CALLED BY E.G soandso.get(4)
}
} catch (SQLException err) {
System.err.println(err);
}
}
}
谢谢大家。任何反馈都很好。列表和人员类别
我绝对建议创建一个Person
类来存储与Person的一个实例相关的所有数据。此类将包括此人的联系人ID、全名、电子邮件、电话号码等。类似的内容将起作用,尽管您希望将字段设置为私有字段,并最终为其设置getter/setter:
public class Person {
public int id;
public String name;
public String email;
public String phoneNumber;
}
然后,在获取结果时,可以创建Person
类的新实例,并将所有Person详细信息存储在那里。然后,您可以将所有Person
实例存储在列表中,如下所示:
public void SELECTALL() {
List<Person> persons = new ArrayList<Person>();
...
while (rs.next()) {
Person person = new Person();
person.id = rs.getInt("idColumn");
person.name = rs.getString("nameColumn");
...
persons.add(person);
}
}
这将获得人员列表中第一个名为“John”的人员实例。如果不存在具有该名称的人员,它将返回null
二维阵列列表
但如果您确实坚持使用2D ArrayList,您可以这样做:
Person john = persons.stream()
.filter(person -> person.name.equals("John"))
.findFirst()
.orElse(null);
public void SELECTALL() {
List<List<String>> persons = new ArrayList<List<String>>();
...
while (rs.next()) {
List<String> personData = new ArrayList<String>();
personData.add(rs.getString("idColumn"));
personData.add(rs.getString("nameColumn"));
...
persons.add(personData);
}
}
public void SELECTALL() {
Map<Integer, List<String>> persons = new HashMap<Integer, List<String>>();
...
while (rs.next()) {
List<String> personData = new ArrayList<String>();
int key = rs.getInt("idColumn");
personData.add(rs.getString("nameColumn"));
...
persons.put(key, personData);
}
}
然后,您可以通过执行以下操作获取人员数据的列表
:
List<String> person = persons.get(key);
List person=persons.get(键);
这是否回答了您的问题?您是否尝试编译并运行代码?