编写一个程序,采用多线程访问数组的方法计算一个数组的各元素之和

 上传我的文档
 下载
 收藏
粉丝量:20
该文档贡献者很忙,什么也没留下。
 下载此文档
Java语言程序设计(第2版)第1-6章 课后习题答案
下载积分:1500
内容提示:Java语言程序设计(第2版)第1-6章 课后习题答案
文档格式:DOC|
浏览次数:753|
上传日期: 21:55:02|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1500 积分
下载此文档
该用户还上传了这些文档
Java语言程序设计(第2版)第1-6章 课后习题答案
关注微信公众号给定一个数组,计算各元素之和 用Java编写代码_百度知道
给定一个数组,计算各元素之和 用Java编写代码
给定一个数组,计算各元素之和
用Java编写代码IT大神来帮忙,谢谢
我有更好的答案
按照你的要求编写的给定一个数组,计算各元素之和的Java程序如下public&class&AA&{&public&static&void&main(String[]&args)&{&&int&a[]={1,0,2,6,8,8,7,8,2};&&int&sum=0;&&for(int&i=0;i&a.i++){&&&sum=sum+a[i];&&}&&System.out.println(&sum=&+sum);&}}运行结果sum=42
a[j+1]=a[j];
怎么解决?
我这里没错啊,你的for-j循环for(int j=i-1;j&=0;j--) 是这么写的吗,注意j=i-1;
如果你对我的回答感到满意,请采纳我的回答.
采纳率:67%
来自团队:
public class ItxxzArray {public static void main(String[] args) {int[] array = {1,2,3,4,5,6,7,8,9};int count =0;for(int i=0;i&array.i++){count += array[i];}System.out.println(&总和:&);System.out.println(count);}}
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。多线程对数组进行求和 - Java综合 - Java - ITeye论坛
多线程对数组进行求和
锁定老帖子
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
来自: 杭州
发表时间:&&
最后修改:
需求:
1:对一个大数组进行求和。
2:需要使用多线程实现。
思路:
1:将大数组根据线程的数量进行拆分。
2:每个线程对数组的部分元素进行求和。
3:等待所有线程执行完毕,返回结果。
说明:
在论坛中看到有一个帖子是使用concurrent包实现的,我这个例子没有使用concurrent包。发现也挺简单。
代码如下所示:
* 多线程求和
* @author Administrator
public class ThreadsSum {
static public long sum(final int[] array) {
if (array == null || array.length == 0) {
throw new IllegalArgumentException("array length must greater than 0");
final RuntimeData rd = new RuntimeData();
int threadCount = rd.getThreadCount(array);
System.out.println("thread count:" + threadCount);
//每线程计算的数组元素个数
final int lenPerThread = array.length / threadC
System.out.println(lenPerThread);
for (int i = 0; i & threadC i++) {
final int index =
new Thread() {
public void run() {
long s = 0;
int start = index * lenPerT
int end = start + lenPerT
for (int j = j & j++) {
s += array[j];
synchronized (rd) {
rd.finishThreadCount++;
// System.out.println("thread[" + getName() + "]
finished,sum:" + d.sum);
}.start();
//余下的array元素
int remain = array.length % threadC
System.out.println("remain element count:" + remain);
long s = 0;
for (int i = array.length - i & array. i++) {
s += array[i];
synchronized (rd) {
while (rd.finishThreadCount != threadCount) {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
return rd.
public static void main(String[] args) {
int[] array = new int[15];
long s = System.currentTimeMillis();
long sum = 0;
for (int i = 0; i & array. i++) {
array[i] =
sum += array[i];
long start = System.currentTimeMillis();
System.out.println(start - s);
long sum2 = sum(array);
long end = System.currentTimeMillis();
long cost = end -
System.out.println(sum);
System.out.println(sum2 == sum);
System.out.println("sum:" + sum + ";equals:" + (sum2 == sum) + ";cost:" + cost);
* 保存运行时的相关数据
class RuntimeData {
//默认线程数
int defThreadCount = 17;
//已经执行完成的线程数
int finishThreadC
* 根据数据长度获取线程数,线程数不会大于数组的长度。
* @param array
public int getThreadCount(int[] array) {
if (array.length & defThreadCount) {
return array.
return defThreadC
跳转论坛:移动开发技术
Web前端技术
Java企业应用
编程语言技术习题五--数组_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
习题五--数组
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩1页未读,
定制HR最喜欢的简历
你可能喜欢已解决问题
编写程序计算一个二维数组的每行元素之和每列元素之和对角线元素之和斜对角线元素之和
提问时间: 19:58:14
编写程序计算一个二维数组的每行元素之和每列元素之和对角线元素之和斜对角线元素之和
浏览次数:3755
printf(&j++){if(i==j)sum+=*(*(arr+i)+j);对角线的和为;请输入数组元素的值;i5;}}printf(&j5;i++){for(j=0;if(i+j==4)sum+=*(*(arr+i)+j),j;j5:%d&n&quot,sum=0;}}for(i=0;for(i=0,*(arr+i)+j););return0;%d&j++){scanf(&:\intarr[5][5],sum-*(*(arr+2)+2))#i++){for(j=0.hintmain(){;i5。stdio相关信息.h&int a[3][3];void main(){
int i1=0,i2=0,i3=0,i4=0,i=0;
printf(&please input 9 numbers\n&);
for (i1=0;i1&i1++)
for(i2=0;i2&i2++)
scanf(&%d&,&a[i1][i2]);
for (i1=0;i1&i1++)
答案创立者
以企业身份回答&
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题

我要回帖

更多关于 多线程处理数组 的文章

 

随机推荐