我的问题是:我有列表对象学生包括100个对象
public class Student {
private String id;
private String name;
private int age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
现在,我只想得到一些学生的年龄有名字“ABC”,“BCD”,“DEF”
所以我会这么做:
Map<String, String> data = new HashMap<>();
List<String> listSpecification = new ArrayList<>(Arrays.asList("ABC", "BCD", "DEF"));
for (Student stu : list<Student>) {
for (int i = 0; i < listSpecification.size(); i++) {
if (stu.getName().equalsIgnoreCase(listSpecification.get(i))) {
data.put(pro.getName(), pro.getValue());
}
}
}
你的算法复杂度为O(m*n),其中m是学生的数量,n是名字的数量。使用流式API或collection.contains
的建议不会改变这一点。
您可以使用从学生名到student
的映射将其转换为O(m+n)算法:
Map<String, Student> studentsByName = new HashMap<>();
for (Student s : studentList) {
studentsByName.put(s.getName().toLowerCase(), s);
}
那是O(m)操作。然后您可以遍历规范列表中的所有名称,将每个名称转换为小写,并直接拉出每个学生。这是一个O(n)操作。如果您需要处理同一学生列表的多个规格列表,那么您只需要执行第一步一次就可以提高效率。
问题内容: 我有一个看起来像这样的列表列表: 删除重复列表的最佳方法是什么?使用上面的示例,我正在寻找会产生这种情况的代码: 我最初以为我可以使用,但这似乎不适用于列表列表。我还看到了一个使用的示例,但是代码对我来说并不完全清楚。谢谢您的帮助! 问题答案: uniq_animal_groups = set(map(tuple, animal_groups)) 尽管您将得到一组元组而不是一组列表,但
问题内容: 我想从以下列表中获取唯一值: 我需要的输出是: 此代码有效: 我应该使用更好的解决方案吗? 问题答案: 首先正确声明你的列表,以逗号分隔。你可以通过将列表转换为一组来获得唯一值。 如果进一步将其用作列表,则应执行以下操作将其转换回列表: 另一种可能(可能更快)的可能性是从头开始使用集合而不是列表。然后你的代码应为: 正如已经指出的那样,集合不保持原始顺序。如果需要,则应查找有序集合实现
问题内容: 我有一个Java API,它返回的列表如下: 我正在使用以下scala代码: 现在,如果我尝试使用scala语法糖,例如: 这是行不通的。我得到错误: 看来我需要将Java列表转换为Scala列表。在上述情况下该怎么做? 问题答案: 从 Scala 2.8开始, 此转换现在已使用以下语言构建: 作品。不工作 在2.12.x中使用 在2.13.x中使用
问题内容: 我有一个字典列表,我需要从字典的给定键中获取值的列表(所有字典都具有相同的键)。 例如,我有: 我需要得到1,2,3 当然,我可以通过以下方式获得它: 但是我想找到一种更好的方法。 问题答案: 使用简单的列表推导(如果您确定每个字典都有键): 否则,您需要首先检查是否存在:
问题内容: 我有这样的字典列表: 我想要 最好的方法是什么? 问题答案: 假设每个字典都有一个键,你可以编写(假设你的列表名为l) 如果value可能丢失,可以使用
本文向大家介绍MySQL从一列值列表中仅获取浮点数,包括了MySQL从一列值列表中仅获取浮点数的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是从列表中获取浮点数的查询- 这将产生以下输出-