Tag: 排序

可重排的Java集合,没有重复项

我正在搜索sortable(我的意思是在初始化后排序,很多次使用Comparator)Java类集合没有重复。 是否有更纯粹的解决方案,而不是编写不透明的代码,并阻止例如某些ArrayList添加另一个具有相同值的对象? 编辑1:我应该添加一些关于排序的解释。 我需要使用不同的比较器(实现的多样性)多次对这组值进行排序。

Java Date排序方法?

我有一个字符串数组,格式为ex:’2010-05-04 11:26:46 +0530’。 如何检查数组中的特定日期是>今天? 谢谢

是否可以在忽略每个字符串中的前3个字符的同时对数组列表进行排序?

我试图弄清楚如何按字母顺序对列表进行排序,通常这很容易,但我需要忽略列表中每个字符串的前5个字符。 (它们是数字IDS) ArrayList tempList = new ArrayList(); for(String s : AddressBook){ tempList.add(s); Collections.sort(tempList ); } System.out.println(tempList);

使用flag-sort在Java中对数组进行排序

用Java编写静态方法: public static void sortByFour (int[] arr) 作为参数接收一个充满非负数(零或正数)的数组,并按以下方式对数组进行排序: 在数组的开头,将显示四个没有余数的所有数字。 在它们之后,将出现数组中所有以4为余数的数字。 在它们之后,将出现数组中所有以4为余数的数字。 在数组的末尾,将显示所有其余数字(除以4而其余为3的数字)。 (每组中数字的顺序无关紧要) 使用flag-sort,该方法必须尽可能高效。 空间复杂度必须为O(1) ,时间复杂度必须为O(N)或更小。 注意:请勿使用额外的arrays。 我读到了关于标志排序但我不知道如何用Java编写它的代码。 有人可以帮帮我吗? 根据我读到的内容,有必要在每个桶的数组中找到起始索引和结束索引。 那是对的吗? 为此,有必要计算数组中有多少数除以4,余数为0,1,2和3。 嗯… public static void sortByFour(int[] arr) { int count1 = 0, count2 = 0, count3 = 0, count4 = 0; int startB1, startB2, startB3, startB4; for (int i = 0; i < arr.length; […]

JPA:如何对实体中的Set字段进行排序?

我使用的是Spring 3.2.11.RELEASE,Hibernate 4.3.6.Final和JPA 2.1。 我有以下实体与以下字段… @Entity @Table(name = “user”) public class User implements Serializable, Comparable { … @ManyToMany @JoinTable(name = “user_organization”, joinColumns = { @JoinColumn(name = “USER_ID”) }, inverseJoinColumns = { @JoinColumn(name = “ORGANIZATION_ID”) }) @LazyCollection(LazyCollectionOption.FALSE) @SortNatural private SortedSet organizations; 上面,组织的排序由组织的名称字段完成。 当我运行JPA查询来检索User对象时,我想基于与它们关联的组织的有序列表进行排序。 我试过这个…… final CriteriaBuilder builder = m_entityManager.getCriteriaBuilder(); final CriteriaQuery criteria = builder.createQuery(User.class); … final […]

对2维数组进行排序

我有一个2D数组,我想根据第一列的内容按降序排序,但是我希望数组保留每一行并在第一列移动时移动第二列。 把它作为一个例子; [2, 5] [4, 18] [1, 7] [9, 3] 将被分类为: [9, 3] [4, 18] [2, 5] [1, 7] 谢谢。

Java不区分大小写的本地化排序

我有一组带连字符的字符串集。 考虑到语言环境,我想排序。 List words = Arrays.asList(“App – Small”, “Apple”, “App – Big”); Collator collator = Collator.getInstance(new Locale(“en”)); // Sort Method 1 Collections.sort(words, String.CASE_INSENSITIVE_ORDER); System.out.println(words.toString()); // Sort Method 2 collator.setStrength(Collator.PRIMARY); Collections.sort(words, collator); System.out.println(words.toString()); 结果 String.CASE_INSENSITIVE_ORDER [App – Big, App – Small, Apple] Collator.PRIMARY [App – Big, Apple, App – Small] 虽然Collat​​or.PRIMARY应该进行不区分大小写的排序,但使用上述两种方法的顺序之间存在差异。 如何实现与连字符一起使用的基于区域设置的不区分大小写的排序顺序。 [App – Big,App – […]

Lucene 5排序问题(UninvertedReader和DocValues)

我正在使用Lucene 5.2.1内置的搜索引擎,但我在搜索排序更新选项时遇到问题。 使用Sort选项搜索时出错: 线程“main”中的exceptionjava.lang.IllegalStateException:字段’stars’的意外docvalues类型为NONE(expected = NUM​​ERIC)。 使用UninvertingReader或索引与docvalues。 在org.apache.lucene.index.DocValues.checkField(DocValues.java:208) at org.apache.lucene.index.DocValues.getNumeric(DocValues.java:227) at org.apache.lucene.search.FieldComparator $ NumericComparator.getNumericDocValues(FieldComparator.java:167) at org.apache.lucene.search.FieldComparator $ NumericComparator.doSetNextReader(FieldComparator.java:153) at org.apache.lucene.search.SimpleFieldComparator.getLeafComparator(SimpleFieldComparator.java:36) 在org.apache.lucene.search.FieldValueHitQueue.getComparators(FieldValueHitQueue.java:183) at org.apache.lucene.search.TopFieldCollector $ NonScoringCollector.getLeafCollector(TopFieldCollector.java:141) 在org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:762) 在org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:485) 在org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:694) 在org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:679) 在org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:621) 在org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:527) 在org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:577) 在SearchEngine.searchBusinessByCategory(SearchEngine.java:145) 在Tests.searchEngineTest(Tests.java:137) 在Main.main(Main.java:13) 我索引了一个文档,其中包含一个双字段“星号”,我需要用它来对搜索结果进行排序(具有最高“星号”值的文档需要在顶部)。 Document doc = new Document(); doc.add(new DoubleField(“stars”, stars, Store.YES)); 然后我在“stars”字段上实现了带有Sort选项的Search命令,如下所示: SortField sortfield = new SortField(“stars”, SortField.Type.DOUBLE, true); Sort sort […]

无法按升序对列表进行排序

Map map ; List<Map> list = new ArrayList<Map>(); /////OnCreate…………. function1(){ map = new TreeMap(); map.put(“id”, “id”); map.put(“amont”, “amount”); list.add(map); System.out.println(list); } id = 1,3,5,57,80的输入值 金额的输入值= 100,500,200,10,10000 无法按金额的升序对列表进行排序。 它仍按插入顺序显示。 我该如何解决? 我感谢任何帮助。 提前致谢。 预期产量:数量上升顺序: amt=10 id=4 amt=100 id=1 amt=200 id=3 amt=500 id=2 amt=10000 id=5

基于其中一个字段对对象列表进行排序

你好stackoverflow社区! 我是这些论坛的新手,也是java和android编程的新手 – 这恰好是我的问题的对象 – 所以很抱歉任何错误! 我的问题是排序。 我正在寻找一种方法来根据我选择的字段对对象进行排序(不是基于第一个字段进行排序,而是根据比较器链接进行排序等)。 我相信我找到了解决问题的方法: https://stackoverflow.com/a/5113108/1549672 但我实际上遇到了麻烦。 我怀疑由于缺乏java经验,我可能会遗漏一些东西,所以欢迎任何帮助! 这是我正在尝试的: 作为我的class级 – public class ItemLocation { String title; int id; } 作为我的职能 – public void sort(final String field, List itemLocationList) { Collections.sort(itemLocationList, new Comparator() { @Override public int compare(ItemLocation o1, ItemLocation o2) { if(field.equals(“title”)) { return o1.title.compareTo(o2.title); } else if(field.equals(“id”)) { return […]