有時候我們對小部分數據進行處理,如果使用數據庫的話太過浪費,這時可以考慮使用集合暫時代替一下數據庫。比如有兩張表交易員和交易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;
}
}