如何在Java中声明和使用Python中的字典数组并对其进行过滤?
我想了解字典在Java中是如何工作的 我知道我可以做像这样的事情如何在Java中声明和使用Python中的字典数组并对其进行过滤?,java,python,dictionary,Java,Python,Dictionary,我想了解字典在Java中是如何工作的 我知道我可以做像这样的事情 Map<String, String> map = new HashMap<String, String>(); map.put("dog", "type of animal"); System.out.`println`(map.get("dog")); 我可以给T加上值,这样我以后可以按字段过滤它们?这可行吗 更新 在python中,我将dict列表添加到一个列表中,以方便地过滤它们 T= [] a=
Map<String, String> map = new HashMap<String, String>();
map.put("dog", "type of animal");
System.out.`println`(map.get("dog"));
我可以给T加上值,这样我以后可以按字段过滤它们?这可行吗
更新
在python中,我将dict列表添加到一个列表中,以方便地过滤它们
T= []
a= {'name': 'someone', 'age': 13, 'tall': 1.55}
b= {'name': 'Jack', 'age': 14, 'tall': 1.39}
T.append(a)
T.append(b)
结果是:
T= [ {'name': 'someone', 'age': 13, 'tall': 1.55}, {'name': 'Jack', 'age': 14, 'tall': 1.39}]
我想知道python中这些数据结构的等效结构是什么。我怎样才能像a和b一样申报varibale
filtered_T = [v for v in T if v['name'=='someone']]
这将给
T= [ {'name': 'someone', 'age': 13, 'tall': 1.55}
在Java中,您通常会为此创建一个类
class Person {
private final String name;
private final int age;
private final double height;
//constructors, etc.
}
然后您将拥有一个保存元素的数据结构。一个列表
可以完美地完成这里的工作
Person p1 = new Person("someone", 13, 1.55);
Person p2 = new Person("Jack", 14, 1.39);
List<Person> personsList = Arrays.asList(p1, p2);
或
基本上,您可以从原始列表中获取流,过滤以“someone”作为名称的person实例,并将过滤后的元素收集到一个列表中,然后将其分配回变量personsList
第二种方法删除列表中的元素。当然,只有当实现支持删除元素时,它才起作用。您需要创建一个映射数组。您可以使用
List
。您能在示例中演示一下吗?@luigimendoza使用一个结构并将其添加到SortedList中如何?好的,现在您的问题清楚且更简洁了,谢谢你的回答。感谢你的帮助。你能帮忙吗?
Person p1 = new Person("someone", 13, 1.55);
Person p2 = new Person("Jack", 14, 1.39);
List<Person> personsList = Arrays.asList(p1, p2);
personsList = personsList.stream()
.filter(p -> p.getName().equals("someone"))
.collect(Collectors.toList());
personsList.removeIf(p -> !p.getName().equals("someone"));