好日子,我被困在弄清楚如何从列表中获取单个对象,我做了谷歌,但所有主题都显示了如何返回带有排序对象或类似内容的List
。
我有一个用户类
class User() {
var email: String = ""
var firstname: String = ""
var lastname: String = ""
var password: String = ""
var image: String = ""
var userId: String = ""
constructor(email:String,
firstname: String,
lastname: String,
password: String,
image: String, userId : String) : this() {
this.email = email
this.firstname = firstname
this.lastname = lastname
this.password = password
this.image = image
this.userId = userId
}
}
在java中,我会这样写
User getUserById(String id) {
User user = null;
for(int i = 0; i < myList.size;i++;) {
if(id == myList.get(i).getUserId())
user = myList.get(i)
}
return user;
}
我怎样才能在kotlin中获得同样的结果?
简化
val user: User = myList.single { it.userId == id }
或者如果可能列表没有您的过滤器
val user: User? = myList.singleOrNull{ it.userId == id }
如果您不想处理空对象,请尝试以下操作:
val index = myList.indexOfFirst { it.userId == id } // -1 if not found
if (index >= 0) {
val user = myList[index]
// do something with user
}
您可以使用 find
执行此操作,它为您提供了与给定谓词匹配的列表的第一个元素(如果没有匹配,则为 null
):
val user: User? = myList.find { it.userId == id }
或者,如果您确实需要与谓词匹配的最后一个元素,就像您的Java示例代码一样,您可以使用last
:
val user: User? = myList.last { it.userId == id }
核心问题:如何正确地将查询中的信息提取到对象中? 想法 我在我的DAO中创建函数,这归结为以下查询: 我正在寻找一种方法来创建一个jOOQ表达式,它只给我一个列表(或者一些我可以循环的东西),对象是A(pojo)和整数。 具体案例 在我的代码案例中:A=志愿者和B=志愿者匹配,我为每个志愿者存储几个匹配。B的主键是(自愿ID,自愿MatchId)。因此,这个查询会得到志愿者的信息以及匹配的数量。显
在XML文档中,例如: 如果任何元素包含'Text1'的内部文本,则返回Null集的单个XPath 1.0兼容、local-namespace()兼容的表达式是什么? 我尝试了许多不同的表达式,但无法获得返回空集的元素。 例如。 严格的要求是由于一个具体的实施。NET函数调用XmlNode.选择单节点方法(字符串) Dimitre提供的最终精确解
我有class-user,它看起来如下所示: 这两个哈希映射包含未知的键和字符串类型的值(它们给我带来了很多麻烦)。 我已经使用insert方法将该类映射到表中。并将其映射到下表方案: 我有什么方法来处理这些hasmaps? 谢谢!
问题内容: 我有一个对象列表。对象具有3个字符串属性。我想制作一个仅包含类中特定属性的列表。 有内置的功能可以做到这一点吗? 问题答案: 列表理解会很好地工作: 但是,由于您要求:-),所以有内置功能的组合。
问题内容: 我想知道是否可以在SQL Server中运行一个命令/存储的程序,该程序将为我提供包含表中给定数据的列的名称。 因此,如果我要查询,请给我该表中所有包含值75的列。我不希望该行。只是表中的列名…这可能吗? 问题答案: 当您对输出感到满意时,请取消注释。 因此,让我们考虑一个简单的表: 现在,基于上述代码的存储过程: 用法示例: 输出:
问题内容: 我正在尝试编写一个名为flatten_list的函数,该函数将可能嵌套的列表作为输入,并返回包含输入列表的所有元素的非嵌套列表。 我的代码: 此代码适用于带有字符串的列表,但不适用于整数值。如何更改代码,使其同时适用于两者? 谢谢 问题答案: 通常,这将以递归方式进行,例如: 这将可迭代的容器的任意组合(例如工作,,,(仅按键))和内容(例如,,),使用普通EAFP Python的风格