我們已經(jīng)寫過(guò)一次股票顯示的例子,這次我們?cè)賹懸淮危@次與上次有所不同,這次我們?cè)诜?wù)器端用集合將股票信息存儲(chǔ)在靜態(tài)塊,每次調(diào)取信息的時(shí)候就不用再實(shí)例化了,可以節(jié)省大量?jī)?nèi)存空間,然后我們?cè)诳蛻舳苏{(diào)取集合,然后遍歷打印出來(lái),用死循環(huán)和線程就能實(shí)現(xiàn)股票信息的不斷顯示。

下面附代碼:

股票類:
class Stock {
    
private int id;
    
private String name;
    
private int price;
    
private char flag;
    
    
public int getId() {
        
return id;
    }

    
public void setId(int id) {
        
this.id = id;
    }

    
public String getName() {
        
return name;
    }

    
public void setName(String name) {
        
this.name = name;
    }

    
public int getPrice() {
        
return price;
    }

    
public void setPrice(int price) {
        
this.price = price;
    }

    
public char getFlag() {
        
return flag;
    }

    
public void setFlag(char flag) {
        
this.flag = flag;
    }

}


股票服務(wù)器類:
class StockServer {
    
    
private static List<Stock> stocklist = new ArrayList<Stock>();
    
static{
        Stock stock1 
=new Stock();
        stock1.setId(
01);
        stock1.setName(
"ibm");
        stock1.setFlag(
'a');
        stocklist.add(stock1);
        
        Stock stock2 
=new Stock();
        stock2.setId(
02);
        stock2.setName(
"sun");
        stock2.setFlag(
'a');
        stocklist.add(stock2);
        
         Stock stock3 
=new Stock();
         stock3.setId(
2);
         stock3.setName(
"Orical");
         stock3.setFlag(
'b');
         stocklist.add(stock3);
         
         Stock stock4 
=new Stock();
         stock4.setId(
4);
         stock4.setName(
"Microsoft");
         stock4.setFlag(
'b');
         stocklist.add(stock4);
         
         Stock stock5 
=new Stock();
         stock5.setId(
6);
         stock5.setName(
"中國(guó)石化");
         stock5.setFlag(
'c');
         stocklist.add(stock5);
         
         Stock stock6 
=new Stock();
         stock6.setId(
7);
         stock6.setName(
"同花順");
         stock6.setFlag(
'd');
         stocklist.add(stock6);
        
    }

    
    
public static List<Stock> getStockList(){
        Random r 
=new Random();
        
for(Stock s :stocklist){
            s.setPrice(r.nextInt(
100));
        }

        
return stocklist;
    }

}



股票客戶端類:

public class StockClient {
    
    
public static void getStockListFromServer(){
        List
<Stock> list = StockServer.getStockList();
        
for(Stock s : list){
            System.out.println(
"股票號(hào):"+s.getId()+"  股票名:"+s.getName()+"  股票價(jià):"+s.getPrice()+"  股票類型:"+s.getFlag());
        }

        System.out.println(
"-----------------------");
    }

    
    
public static void main(String[] args){
        
        
while(true){
            getStockListFromServer();
            
try {
                Thread.sleep(
2000);
            }
 catch (InterruptedException e) {
                e.printStackTrace();
            }

        }

        
    }

}



運(yùn)行結(jié)果: