Tag: 排序

CompareTo / Sorting字符串和整数的2D数组

好的,所以我现在想出如何通过字符串和整数对2d数组进行排序,但是我不知道如何将它们组合起来。 我有一个2d用户数组,每行有一个用户数据。 数据分别是列的字符串或整数,所以如果我有多个比较方法,例如按名称排序或按电话号码排序,我如何实现初始的2d数组,因为如果我将它声明为字符串,我就无法比较按整数,如果我将其声明为整数,我就不能再通过String进行比较。 我现在使用的是基本的2d排序方法。 final Integer[][] data1 = userlistcopy; Arrays.sort(data1, new Comparator() { @Override public int compare(final Integer[] entry1, final Integer[] entry2) { final Integer time1 = entry1[1]; final Integer time2 = entry2[1]; return time2.compareTo(time1); } }); System.out.println(“====”); for (final Integer[] s : data1) { System.out.println(s[0] + ” ” + s[1]); } 要么 final String[][] […]

将对象类型和字段传递给比较器

是否可以编写一个Comparator以便我可以传递Object类型,字段类型和我想要排序的字段? 我对http://www.davekoelle.com/files/AlphanumComparator.java进行了一些小的更改,以适应对象类型User String类型的字段email的排序。 我有这个代码有效。 public class Main { public static void main(String[] args) { List users = new ArrayList(); users.add(new User(7, “user1”, “user1@c.com”)); users.add(new User(11, “user20”, “user20@c.com”)); users.add(new User(5, “admin20”, “admin20@c.com”)); users.add(new User(10, “user11”, “user11@c.com”)); users.add(new User(6, “admin21”, “admin21@c.com”)); users.add(new User(12, “user21”, “user21@c.com”)); users.add(new User(8, “user2”, “user2@c.com”)); users.add(new User(1, “admin1”, “admin1@c.com”)); users.add(new User(3, “admin10”, “admin10@c.com”)); […]

无法按日期对JTable进行排序

我有一个JTable,其中第一列是Date。 但是,这实际上不是Date对象,它是一个以英国格式显示日期的String 。 以下是我的代码 private class DisplayAllRevenue extends ComponentAdapter { @Override public void componentShown(ComponentEvent e) { DefaultTableModel model = (DefaultTableModel) allRevenueTable.getModel(); model.setRowCount(0); dbConnector = new DBHandler(); dbConnector.makeConnection(); java.sql.Date dateOfLastUpdate=null; ResultSet portfolioRs = dbConnector.selectAllDetails(getPortfolioData); try { if(portfolioRs.isBeforeFirst()==false) { JOptionPane.showMessageDialog(null,”Empty”); } else { while(portfolioRs.next()) { String provider = portfolioRs.getString(“Provider Name”); String client = portfolioRs.getString(“Client Name”); int idPortfolio […]

将对象列表排序到特定成员/状态

我有一个包含4个成员的java对象列表。 int id; String name; String age; int order; 我想按order排序这个对象的列表。

Java递归和合并排序

我正在尝试用Java编写一个简单的合并排序程序,我在Eclipse中看到了很多红色。 我还是个初学者,并没有看到什么是错的。 谢谢。 -Kyle public class merge{ public static int[] mergeSub(int[] array, int left, int right){ if(left<right) { int mid = (left+right)/2; int[] a = mergeSub(array, left, mid); int [] b = mergeSub(array, mid+1, right); return merge(a, b); } int[] arr=new int[1]; arr[0]=arr[left]; return arr; } static int[] merge(int[] left, int[] right){ int index =0; […]

如何按字母顺序排序String数组(不使用compareTo或Arrays.sort)

我需要按字母顺序组织一个字符串数组。 从理论上讲,每个单词的第一个字母都是大写的(尽管不一定,因为人们不能总是信任用户)。 我试过Arrays.sort() ,它不会运行程序。 我尝试过使用compareTo() ,当它运行程序时,当它到达那段代码时,我收到此错误: Exception in thread “main” java.lang.NullPointerException at java.lang.String.compareTo(Unknown Source) at NameandAge.printNameOrder(NameandAge.java:431) at NameandAge.print(NameandAge.java:350) at NameandAge.main(NameandAge.java:116) 从字面上看,我在这个问题上找到的一切都给了我这两个解决方案中的一个。 还有其他建议吗? (对于记录,代码当前读取:) while(!done) { done=true; for(int i=0;i0) { temp=organizedNames[i]; //temp is a String that was declared earlier organizedNames[i]=organizedNames[i+1]; organizedNames[i+1]=temp; done=false } } } } } 编辑:尝试检查以确保name1和name2不为null 。 它现在有效,但这是输出:乔 法案 短发 工匠 罗德尼 詹姆士 菲利普 […]

如何筛选照片列表 – android?

我正在尝试这样做:按今天日期,本周,本月和今年对对象数组(日期类型)进行排序,我知道如何使用Comparator类按降序或升序排序日期数组,但我不知道如何我知道如何按今天的日期,本周,本月或今年排序数组。 private void sortTopicsByDate() { Collections.sort(topics, new Comparator() { @Override public int compare(Topic o1, Topic o2) { return o1.getCreatedTime().compareTo(o2.getCreatedTime()); } }); } 更新(过滤列表,其中包含今天创建的照片) private List getFilteredTopics() { List filteredList = new ArrayList(); Date now = new Date(); // today date Calendar cal = Calendar.getInstance(); Calendar getCal = Calendar.getInstance(); cal.setTime(now); int nYear = cal.get(Calendar.YEAR); int nMonth […]

检查数组是否已排序

我正在尝试构建一个程序,它接受一个整数数组作为参数并返回一个String。 如果数组从最小到最大排序,字符串将是“升序”,如果数组从最大到最小排序,则“降序”,“未排序”是数组根本没有排序,“所有相同的“如果数组的所有元素都相等。 到目前为止,我有以下代码。 我是在正确的轨道上吗? 我一直在下面指出的行上出现错误,说“参数类型的运算符>未定义”。 知道是什么原因引起的吗? import java.util.*; import java.io.*; import java.util.Scanner; public class arrayCheck { public static void main(String[] args) throws IOException { arrayInput(); isSorted(null); } public static String arrayInput() { int size = 0; Scanner in = new Scanner(System.in); System.out.println(“Enter the size of the array: “); size = in.nextInt(); System.out.println(“The size you enetered […]

在不使用Collections.sort的情况下对ArrayList中的对象进行排序

我想使用我自己的排序方法而不是Collections.sort以便我可以修改我的程序以更好地理解其他排序,generics和ArrayList 。 我有一个员工类,有一个员工编号成员。 我知道如何制作一个Employee对象的ArrayList ,但是你能解释一下我如何打印和排序它们吗? 我从排序常规数组开始,并希望对Employee对象的ArrayList(员工编号)执行相同的操作。 我无法理解如何打印对象的ArrayLists并对它们进行排序。 package dataStructures; import java.util.ArrayList; import java.util.Arrays; public class SortPractice { public static void main(String[] args) { int[] nums = {5,4,3,2,1}; System.out.println(Arrays.toString(nums)); BubbleSort1(nums); ArrayList empList = new ArrayList(); for (int i=0; i<10; i++) { empList.add(new Employee(10-i)); } BubbleSort(empList); //This method doesn't work. I need help here. } public static […]

排序时间总是与第一次排序不同

我写了几个排序算法。 我想比较他们的排序时间,至少差不多。 但是在第一次循环之后,所有排序时间都会减少,除了StoogeSort。 我认为在背景上有所优化,但我应该考虑采取哪些措施? 第一个还是其他? 为什么会发生这种情况? public static void main(String[] args) { RandomNumber rn = new RandomNumber(); Scanner sc = new Scanner(System.in); while(true){ System.out.println(“Enter the input size.”); int n = sc.nextInt(); int[] experimentalArray = rn.experimentalArrayGenerator(n); Stopwatch sw1 = new Stopwatch(); StoogeSort ss = new StoogeSort(experimentalArray.clone()); System.out.println(“StoogeSort : ” + sw1.elapsedTime() + ” µs”); Stopwatch sw2 […]