package com.zdf.newapp.sort;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Trade trade1 = new Trade("8.9", "500", "2012-08-31");
Trade trade2 = new Trade("8.8", "600", "2012-08-27");
Trade trade3 = new Trade("9.7", "100", "2012-08-20");
Trade trade4 = new Trade("9.01", "300", "2012-08-20");
Trade trade5 = new Trade("8.8", "400", "2012-08-19");
Trade trade6 = new Trade("8.1", "700", "2012-08-11");
Trade trade7 = new Trade("8.8", "500", "2012-08-27");
List<Trade> listTrade = new ArrayList<Trade>();
listTrade.add(trade1);
listTrade.add(trade2);
listTrade.add(trade3);
listTrade.add(trade4);
listTrade.add(trade5);
listTrade.add(trade6);
listTrade.add(trade7);
ComparatorUser comparator=new ComparatorUser();
Collections.sort(listTrade, comparator);
for (int i=0;i<listTrade.size();i++){
Trade user_temp=(Trade)listTrade.get(i);
System.out.println(user_temp.getQuote_price()+","+user_temp.getQuote_date()+","+user_temp.getQuote_num());
}
}
public static class ComparatorUser implements Comparator{
public int compare(Object arg0, Object arg1) {
Trade Trade0=(Trade)arg0;
Trade Trade1=(Trade)arg1;
//首先比较价格,如果价格相同,则比较时间,前两者都一样则比较数量
int flag=Trade1.getQuote_price().compareTo(Trade0.getQuote_price());
if(flag==0){
flag = Trade0.getQuote_date().compareTo(Trade1.getQuote_date());
return flag;
}
if(flag==0){
return Trade0.getQuote_num().compareTo(Trade1.getQuote_num());
}
else{
return flag;
}
}
}
public static class Trade {
private String quote_price;//报价价格
private String quote_num;//报价数量
private String quote_date;//报价时间
public String getQuote_price() {
return quote_price;
}
public void setQuote_price(String quotePrice) {
quote_price = quotePrice;
}
public String getQuote_num() {
return quote_num;
}
public void setQuote_num(String quoteNum) {
quote_num = quoteNum;
}
public String getQuote_date() {
return quote_date;
}
public void setQuote_date(String quoteDate) {
quote_date = quoteDate;
}
public Trade(String quote_price ,String quote_num,String quote_date){
this.quote_date=quote_date;
this.quote_price=quote_price;
this.quote_num=quote_num;
}
}
}
输入: 输出 图片 如附件
- 大小: 18.2 KB
- 大小: 12.8 KB
分享到:
相关推荐
一种常见的方式是使用第三方库,如`pinyin4j`,它可以帮助我们将中文字符转换为拼音。 以下是使用`pinyin4j`库实现的示例代码: ```java import net.sourceforge.pinyin4j.PinyinHelper; import ...
1. **初始化**:假定数组的第一个元素已经被排序。 2. **遍历数组**:从第二个元素开始遍历数组。 3. **比较与移动**:对于每一个遍历到的元素,将其与前面已排序的元素进行比较,并根据比较结果将当前元素向左移动...
本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[]...
本篇文章将详细介绍如何利用Java内置的`Arrays.sort()`方法按照字符串的首字母进行排序,以及如何处理大小写敏感性问题。 #### 一、基础知识简介 在开始之前,我们先了解几个基本概念: - **字符串数组**:一个由...
从数组最后两位数开始比较,如果最后一个数小于倒数第二个数,我们就互换这个两个数,然后依次类图按照如上图步骤,第一轮下来后数组下标为 0 的就取到全数组最小的数;依次类推的方式,按照第二轮,第三轮步骤… ...
1. **确定位数**:首先确定待排序数组中最大数的位数,这是基数排序的第一步,因为它决定了需要进行多少轮排序。 2. **低位优先(LRD)**:从最低位开始,对每一位进行计数排序。这意味着我们先对所有数字的个位...
- **第二步**:对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 - **第三步**:针对所有的元素重复以上的步骤,除了最后一个。 - **第四步**:持续每次对...
直接插入排序的基本思路是在要排序的一组数中,假设前面 (n-1) [n>=2] 个数已经排好顺序,现在要把第 n 个数插入到前面的有序数列中,使得这 n 个数也是排好顺序的。这一过程会重复进行,直到整个序列全部排序完毕。...
2. **第一轮排序**:在剩下的元素中找到最小元素,与第二个元素交换位置。 3. **第二轮排序**:继续在剩余未排序部分中找到最小元素,与第三个元素交换。 4. **重复过程**:重复以上步骤,直到所有元素都在正确的...
- 接着比较倒数第二个与倒数第三个元素,以此类推,直至第一个元素。 - 第一轮结束后,最小的元素会被放置在第一个位置。 - 对剩余元素重复此过程,每次都将最小值移到未排序部分的开头。 - 同样,整个过程需...
比较第二个元素与已排序的第一个元素,若小于则插入,并调整已排序部分的顺序。 3. 继续比较第三个元素,以此类推,直到所有元素都插入正确位置。 3. **冒泡排序**: - 基本思想:相邻元素两两比较,若顺序错误...
- **bubble_down()**: 从数组的开头开始,依次比较相邻的两个元素,如果第一个比第二个大,则交换位置,如此反复直到末尾。 - **bubble_up()**: 相反方向,从数组的末尾开始,依次比较相邻的两个元素,如果第二个比...
第一种方法直接使用`compareTo()`或`compareToIgnoreCase()`方法,但这可能会在处理大数字时效率较低。第二种方法是将字符串转换为整数(例如,使用`Integer.parseInt()`),然后使用整数比较,这种方法在数值范围不...
- 选择一个基准值(pivot),通常选择序列的第一个元素; - 将所有小于基准值的元素移动到基准值的左边,将所有大于基准值的元素移动到基准值的右边; - 对左右两个子序列重复上述过程,直到所有子序列只有一个...
在Java编程中,处理大文件是一项挑战,特别...总结来说,Java大文件读取排序涉及了Java I/O,流处理,分块策略,排序算法,多线程技术,以及可能的第三方库和工具的使用。理解并掌握这些技术是优化大型数据处理的关键。
在冒泡排序中,我们通常从数组的第一个元素开始,比较相邻的两个元素,如果前一个元素大于后一个元素,就交换它们的位置。这个过程会一直持续到数组的末尾。然后,我们对剩下的未排序部分再次进行同样的操作,但这次...
### Java编写的插入排序算法 #### 一、插入排序算法基本思想 插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在...
- **冒泡排序第一种实现**: - 特点:从前往后比较。 - 实现逻辑:外层循环控制轮数,内层循环控制每轮的比较次数。每轮都保证最大的元素被放到最后的位置。 - **冒泡排序第二种实现**: - 特点:从后往前比较。 ...