在java中使用集合臨時代替數據庫,並實現部分功能。

有時候我們對小部分數據進行處理,如果使用數據庫的話太過浪費,這時可以考慮使用集合暫時代替一下數據庫。比如有兩張表交易員和交易Trader(name,address),Transaction(year,sum,Trader)。需求,查出2019年的所有交易,並且按照交易額排序。
分析:
萬物皆對象,Trader和Transaction都實現爲一個類。
需要做的有兩步1:篩選出所有2019年的交易。2:對交易進行排序。
那我們只要把2019年的交易存到一個集合中,然後對集合排序就行了,這就清晰多了。
代碼實現

package Test;

import java.math.BigDecimal;
import java.util.*;

public class Test2 {
     static List<Transaction> source = new ArrayList<Transaction>();;
     static Transaction source1,source2,source3,source4,source5,source6;
     static {
         source1 = new Transaction(2019, 89000, new Trader("張三", "上海"));
     source2 = new Transaction(2019, 79000, new Trader("李四", "北京"));
     source3 = new Transaction(2012, 890000, new Trader("寧王", "北京"));
     source4 = new Transaction(2012, 5000, new Trader("王虎", "廣州"));
     source5 = new Transaction(2014, 4000, new Trader("陳明", "廣州"));
     source6 = new Transaction(2013, 88000, new Trader("劉備", "上海"));}
    public static void setup() {
        source.add(source1);
        source.add(source2);
        source.add(source3);
        source.add(source4);
        source.add(source5);
        source.add(source6);

    }


    public static void main(String[] args) throws Exception {
        Test2 t2 = new Test2();
        t2.setup();
        /*for(Transaction t : source){
            System.out.println(t.toString());
        }*/
        t2.test1();
    }
    /*tran
    查出2019年所有交易,並按交易額由小到大排序
     */
    public static void test1() {
        int year = 2019;
        List<Transaction> tran = new ArrayList<Transaction>();
        for (Transaction t:source) {
            if(t.year==2019){
                tran.add(t);
            }
        }

        Collections.sort(tran, new Comparator<Transaction>() {
            @Override
            public int compare(Transaction o1, Transaction o2) {
                return o1.sum-o2.sum;
            }
        });

        for (Transaction i:tran) {
            System.out.println(i.toString());
        }

    }
}

class Trader{
    String name;
    String address;

    public Trader(String name, String address) {
        super();
        this.name = name;
        this.address = address;
    }

    @Override
    public String toString() {
        return "Trader [name=" + name + ", address=" + address + "]";
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }

}

class Transaction{
    int year;
    int sum;
    Trader trader;

    @Override
    public String toString() {
        return "Transaction{" +
                "year=" + year +
                ", sum=" + sum +
                ", trader=" + trader +
                '}';
    }

    public Transaction(int year, int sum, Trader trader) {
        super();
        this.year = year;
        this.sum = sum;
        this.trader = trader;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public int getSum() {
        return sum;
    }

    public void setSum(int sum) {
        this.sum = sum;
    }

    public Trader getTrader() {
        return trader;
    }

    public void setTrader(Trader trader) {
        this.trader = trader;
    }


}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章