#java #sqlite #kotlin #arraylist
#java #sqlite #kotlin #arraylist
Вопрос:
Итак, по сути, я использую java для получения информации, а затем использую Kotlin для управления информацией. Итак, что я сделал до сих пор, я сохранил свою информацию в ArrayList, вызываемом tableData
на java, я сохраняю все свои элементы в этом списке (я должен был использовать лучшее имя здесь), а затем вернул список. Мой java-код:
public static ArrayList<String> readAllData () {
//Connecting to database
Connection con = DbConnection.connect();
//Preparing statement
PreparedStatement ps = null;
//result set declaration
ResultSet rs = null;
//tableData String array
ArrayList<String> tableData = new ArrayList<String>();
try {
//Database initialization
String sql = "SELECT * FROM ProjectInfo";
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
//for each iteration store the data into variable a from column projectName
String a = rs.getString("projectName");
//print out each element
//System.out.println("a = " a);
tableData.add(a);
}
//other catch exceptions
} catch (SQLException e) {
System.out.println(e.toString());
} finally {
try {
rs.close();
ps.close();
con.close();
} catch (SQLException e){
System.out.println(e.toString());
}
}
//System.out.println(tableData);
//return all the data that has been stored into this array
return tableData;
}
В Kotlin я создал вызываемый класс свойств GettingData
и передал один параметр projectName: ArrayList<String>
. Затем я перешел к фактической распечатке данных
class GettingData(var projectName: ArrayList<String>) {
}
fun ManageData() {
var arrayData = listOf<GettingData>(GettingData(DbConnection.readAllData()))
var projectNameData = arrayData.map {it.projectName}
for (projectName in projectNameData) {
println(projectName)
}
}
Все мои элементы распечатаны, однако я не могу использовать функции фильтра для вызова определенных элементов из ArrayList? Я хочу иметь возможность вызывать каждый элемент и распечатывать их в алфавитном порядке? Я пробовал filter, sortedWith and find
функции, но, похоже, не могу заставить их работать. Как я могу этого добиться?
Ответ №1:
Я думаю, ваш вопрос сводится к желанию распечатать список строк в алфавитном порядке.
Вы можете использовать sorted()
функцию:
for (projectName in projectNameData.sorted()) {
println(projectName)
}
Комментарии:
1. Пробовал это, но это просто выдает мне ошибку и говорит мне создать функции расширения в контекстных действиях, в которых я не слишком уверен?
2. Хорошо, тогда я не думаю, что ваш вопрос подлежит ответу в его нынешнем виде. Пожалуйста, постарайтесь свести его к минимально воспроизводимому требуемому коду и включите желаемое поведение и любые сообщения об ошибках, которые вы получаете. Например, весь раздел Java не имеет отношения к вопросу. Приведенный выше код работает для меня и выводит отсортированный список, поэтому в вашем случае должно быть что-то еще.
3. Это сработало! Я понял, что многие элементы в моей базе данных, где осталось null или empty, это вызывало проблему. Теперь это работает!