相关疑难解决方法(0)

何时在Java中使用LinkedList而不是ArrayList?

我一直只是一个人使用:

List<String> names = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

我使用接口作为可移植性的类型名称,因此当我问这些问题时,我可以重新编写代码.

何时应该LinkedList使用,ArrayList反之亦然?

java collections linked-list arraylist

2974
推荐指数
27
解决办法
102万
查看次数

为什么java.util.Set没有get(int index)?

我确定这是一个很好的理由,但有人可以解释为什么java.util.Set界面缺乏get(int Index),或任何类似的get()方法?

似乎套装非常适合放入物品,但我找不到从中检索单个物品的优雅方式.

如果我知道我想要第一个项目,我可以使用set.iterator().next(),但是否则我似乎必须转换为数组来检索特定索引处的项目?

从集合中检索数据的适当方法是什么?(除了使用迭代器)

我确信它被排除在API之外意味着有一个很好的理由不这样做 - 有人可以开导我吗?

编辑: 这里有一些非常好的答案,还有一些说"更多背景".特定场景是一个dbUnit测试,我可以合理地断言查询返回的集只有一个项目,我试图访问该项目.

但是,没有这种情况,这个问题更有效,因为它仍然更受关注:

集合和列表之间有什么区别.

感谢所有人在下面的精彩答案.

java collections set data-structures

234
推荐指数
10
解决办法
19万
查看次数

List和Set之间的性能和内存分配比较

我想知道List和Set在性能,内存分配和可用性方面的比较.

如果我没有要求在对象列表中保持唯一性,则既不需要维护插入顺序,我可以交替使用ArrayList和SortedSet/HashSet吗?直接使用Collections类而不是列表/集合会不会很好?

PS我也不需要列表或设置java提供的特定功能.我只使用List/Set而不是Array,因为它们可以动态增长而无需额外的编程工作.

java collections list set

53
推荐指数
2
解决办法
4万
查看次数

HashSet与ArrayList

所以我有一个自定义类Class,它将拥有一组另一个自定义类Student.所以它看起来像这样:

public class Class {
    private Set<Student> students;

    // other methods
}
Run Code Online (Sandbox Code Playgroud)

现在我将向学生们添加和删除许多学生,我也将改变已经在学生集中的学生的许多私人领域.

问题:我应该使用什么数据结构来实现这一目标?由于我将更改set student中的Student对象的属性(从而更改哈希码),我应该使用ArrayList吗?

java collections arraylist set hashset

9
推荐指数
2
解决办法
2万
查看次数

这个HashSet如何产生排序输出?

[1,2]即使hashset未排序,以下代码也会产生输出.

Set set = new HashSet();
set.add(new Integer(2));
set.add(new Integer(1));
System.out.println(set);
Run Code Online (Sandbox Code Playgroud)

这是为什么?

java hashset

6
推荐指数
2
解决办法
3874
查看次数

p:dataList不能迭代java.util.Set

我在primefaces dataGrid中有一个primefaces dataList,但我有问题映射到嵌套的dataList集合(java.util.Set)的属性.当我引用嵌套Set(dream.tag)上的任何属性时,我得到异常:

javax.servlet.ServletException:/registered/modify.xhtml @ 42,48 value ="#{tag.id}":在类型org.hibernate.collection.PersistentSet上找不到属性'id'.

该属性存在,但dream.tag属性映射到私有Set标记.是否可以将dataList组件与Set一起使用.我在下面复制了我的数据模型的大纲.谢谢您的帮助!

<p:dataGrid var="dream" value="#{dreamModifyBean.dreams}" columns="5"  rows="10" paginator="true" effect="true"  paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="10,15,20" paginatorPosition="bottom"> 
    <p:column>  
        <h:panelGrid columns="1" style="width:100%"> 
            <h:outputText value="#{dream.order}. #{dream.title}"/><br/>
            <p:graphicImage value="#{dream.imageThumb}" width="125" height="100"/><br/>
            <h:outputText value="#{dream.notes}"/><br/>
            <p:dataList value="#{dream.tag}" var="tag">  
                <h:outputText value="#{tag.id}"/>
            </p:dataList> 
            <h:outputText value="#{bundle['dreamModify.cost.TEXT']} #{dream.cost}"/><br/>
        </h:panelGrid>  
    </p:column>  
</p:dataGrid>
Run Code Online (Sandbox Code Playgroud)

梦(dreamModifyBean.dreams) - 父:

public class Dream implements Serializable{
 @OneToMany(fetch=FetchType.EAGER,cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
 @JoinColumn(name="DREAM_ID")
 private Set<Tag> tag;

public Set<Tag> getTag() {
    return tag;
}
public void setTag(Set<Tag> tag) {
    this.tag = tag; …
Run Code Online (Sandbox Code Playgroud)

java jsf hibernate primefaces

4
推荐指数
1
解决办法
7083
查看次数

List&lt;Set&lt;Integer&gt;&gt; 是什么意思?

我收到的问题之一是:

所有行都应存储在类型为 的对象中List<Set<Integer>>

你如何用 Java 编写这个,就像如何初始化这个列表一样?我以前从未见过这个。

请提供一个解释链接,因为我不确定这在 Java 中叫什么,所以不知道如何了解它。谢谢。

java list set

1
推荐指数
1
解决办法
1万
查看次数