Java静态列表在一段时间后失去其顺序

Java静态列表在一段时间后失去其顺序,java,sorting,jsf,collections,linked-list,Java,Sorting,Jsf,Collections,Linked List,我的Util.java类中有一个静态列表: 当我在Util.java类的静态块中启动我的应用程序时,我调用方法fillMainList,之后,每隔12小时由一个调度器更新列表 每次用户进入JSF页面时,其支持bean都会从Util.java类中获得此列表 好的,当我启动应用程序时,我可以在PrimeFaces数据表中看到列表,其顺序与我使用Hibernate条件查询的顺序相同。但大约10分钟后,当我再次进入页面时,列表被随机排序。。。静态列表失去了排序。。。这怎么可能呢,我甚至用LinkedLi

我的Util.java类中有一个静态列表:

当我在Util.java类的静态块中启动我的应用程序时,我调用方法fillMainList,之后,每隔12小时由一个调度器更新列表

每次用户进入JSF页面时,其支持bean都会从Util.java类中获得此列表

好的,当我启动应用程序时,我可以在PrimeFaces数据表中看到列表,其顺序与我使用Hibernate条件查询的顺序相同。但大约10分钟后,当我再次进入页面时,列表被随机排序。。。静态列表失去了排序。。。这怎么可能呢,我甚至用LinkedList试图维护排序,但没有成功


谢谢

为什么您希望LinkedList保持排序顺序?你明白静态是什么意思吗?您在哪里访问该列表以及如何处理它?@StrongJoshua这有什么帮助?@user3580294 ArrayLists,因为它们使用数组,所以保持有序。至少我一直都是这么认为的。@StrongJoshua,不,维护排序顺序不是ArrayList或List接口所能保证的行为,LinkedList不会随机更改顺序。完全有可能对数组/数组列表进行随机化,而随机化的列表几乎毫无用处。几乎不可能处理一个列表,其中立即连续调用list.get0;返回了不同的对象。@StrongJoshua为什么你会认为列表和/或链接列表会自动随机化?列表或者至少是列表的合理实现不会这样做。曾经除非你想惹人讨厌,并写一份清单来说明这一点。可以使用ArrayList,但由于它实现了与LinkedList完全相同的列表接口,所以不会有什么区别。你说它是自列表迭代器,根据插入顺序遍历列表。为什么LinkedList的迭代器不这样做?
...
private static List<MyEntity> mainList = new LinkedList<MyEntity>();
...
static {    
    fillMainList();
}
...
public static List<MyEntity> fillMainList() {

    org.hibernate.Session session = HibernateUtil.getSessionFactory().openSession();
    try{
        setMainList(new MyEntityDAO(session).findMyEntities());
    }
    finally{
        session.close();            
    }

    return getMainList();
}
...
...
@SuppressWarnings("unchecked")
public List<MyEntity> findMyEntities(){
    Criteria criteria = getSession().createCriteria(MyEntity.class);        
    criteria.addOrder(Order.desc("participants") );
    criteria.setMaxResults(5);      
    List<MyEntity> MyEntitys = (List<MyEntity>) criteria.list();
    List<MyEntity> ordered = new LinkedList<MyEntity>();
    ordered.addAll(MyEntitys);
    return ordered;
}
...
...
public List<MyEntity> getMainList() {
    if(mainList == null){
        mainList = Util.getMainList();
    }
    return mainList ;
}
...