我们已经写过一次股票显示的例子,这次我们再写一次,但这次与上次有所不同,这次我们在服务器端用集合将股票信息存储在静态块,每次调取信息的时候就不用再实例化了,可以节省大量内存空间,然后我们在客户端调取集合,然后遍历打印出来,用死循环和线程就能实现股票信息的不断显示。

下面附代码:

股票类:
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;
    }

}


股票服务器类:
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(
"中国石化");
         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(
"股票号:"+s.getId()+"  股票名:"+s.getName()+"  股票价:"+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();
            }

        }

        
    }

}



运行结果: