您的位置:首页 > 职场人生

公司面试题——线程数组求和

2013-06-20 17:29 344 查看
编程题:

 说明:1)用多线程的方式对inputs数组的每个元素作求和运算,例如某个元素为45,则计算:1+2+3+....+45

       2)把计算结果放到outputs数组对应的索引的位置,例如:

        inputs为:2,3,0,1 计算后outputs为:3,6,0,1

        假定:outputs和inputs数组的元素个数一样

        完成后,程序的最后会打印输入和正确的结果各一行上

实现代码:

[java] view
plaincopy

package com.image.common.util;  

  

import java.util.ArrayList;  

import java.util.List;  

  

public class TestMain {  

    public static void main(String[] args) {  

        int[] inputs = new int[]{2,3,0,1};  

        int[] outputs = new int[inputs.length];  

          

        List<TestThread> list = new ArrayList<TestThread>();  

        TestThread temp = null;  

        for(int i=0;i<inputs.length;i++){  

            temp = new TestThread(inputs[i]);  

            list.add(temp);  

            temp.start();  

        }  

        for (int i = 0; i < list.size(); i++) {  

            try {  

                list.get(i).join();  

            } catch (InterruptedException e) {  

                e.printStackTrace();  

            }  

        }  

          

        String result = "";  

        for (int i = 0; i < list.size(); i++) {  

            outputs[i] = list.get(i).getResult();  

            result = result + outputs[i] + ",";  

        }  

        System.out.println("结果:"+result);  

    }  

}  

  

class TestThread extends Thread{  

      

    private int operation;  

    private int result;  

      

    public TestThread(int operation){  

        this.operation = operation;  

    }  

  

    public void run() {  

        for (int i = 1; i <= operation; i++) {  

            result += i ;  

        }  

    }  

      

    public int getOperation() {  

        return operation;  

    }  

  

    public void setOperation(int operation) {  

        this.operation = operation;  

    }  

  

    public int getResult() {  

        return result;  

    }  

  

    public void setResult(int result) {  

        this.result = result;  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  线程 面试题 求和