如果我有一个对象类型的ArrayList,我想得到一个特定对象的名称,我会用
arraylist.get(i).getName();
但它不适用于套装?如何使用Sets?
调用特定属性我尝试这样做也是因为我处理了大量数据。效率更高
是套装吗?
答案 0 :(得分:2)
如果你需要抓取特定的元素,那么数组/ arraylist是一个更好的实现。虽然如果你真的需要你设置,你可以通过for循环来设置,例如:
for(MyObject elem : mySet){
elem.getName();//Do something with each name
}
抓住每个名字。
答案 1 :(得分:1)
如果
,则表示列表(ArrayList)如果
,则优选Set(HashSet)要访问Set中元素的属性,您可以(或必须)迭代Set元素(无特定顺序)并调用getter:
Set<Element> setOfEl = ...;
for( Element el: setOfEl ){
if( el.getName().equals( ... ){
//....
}
。 }
答案 2 :(得分:0)
问题不在于getName()
,而在于获取您调用getName()
的对象。对于ArrayList,您可以调用get(i)
来获取第i个元素。在集合的情况下,没有定义这样的顺序。
你有两个选择。您可以将其定义为Map
,然后调用get(<yourkey>)
然后调用getName(),或者遍历该集合,直到找到您要查找的内容.iterator()
答案 3 :(得分:0)
ArrayList<E>
是List<E>
,因此方法get(i)
会为您提供E
类型的对象。
Set<E>
没有这样的方法,因此getName()
将无效。
Set<E>
未订购。您必须使用Iterator来解析Set并遍历其所有元素。
您可以参考documentation here: