java如果把Array中的数组的值进行相加呢?

如题所述

你的意思是说比如数组里面有5个对象,现在要改为6个或者更多? 未来你学集合就知道了,不过我这里自己封装一个类,里面就是操作Object数组的,增删插入指定位置都有,代码如下:
public class MyList {
private int size;
Object[] object = null;
Object[] temp;
int sequence = 0;

public MyList() {
this(1);
}

public MyList(int size) {
if (size <= 0) {
throw new IllegalArgumentException("长度应大于0");
} else {
this.size = size;
this.object = new Object[this.size];
}
}

// Add, Insert, Delete, Find
public void add(Object obj) {
if (obj == null) {
throw new IllegalArgumentException("添加的对象不应为null");
} else {
if (sequence >= size) {
this.size++;// 这里扩展空间方式随意,可以每次扩展两倍
temp = new Object[this.size];
System.arraycopy(object, 0, temp, 0, object.length);
object = temp;
temp = null;
}
object[sequence] = obj;
sequence++;
}

}
public void insert(int index, Object obj) {
if (index < 0 || obj == null) {
throw new IllegalArgumentException("插入的索引值应不小于0,并且插入的对象不应为null");
} else {
if (index == object.length) {
add(obj);
} else if (index > object.length) {
throw new IllegalArgumentException("数据越界,插入的索引不应不在数组范围内");
}
if (sequence >= size) {
this.size++;
}
temp = new Object[this.size];
System.arraycopy(object, 0, temp, 0, index);
temp[index] = obj;
System.arraycopy(object, index, temp, index+1, object.length-index);
object = temp;
temp = null;
sequence++;
}

}
public void delete(int index) {
if (index < 0 || index>this.size) {
throw new IllegalArgumentException("索引应在数组范围内");
} else {
temp = new Object[--this.size];
System.arraycopy(object, 0, temp, 0, index);
System.arraycopy(object, index+1, temp, index, object.length-1-index);
object = temp;
temp = null;
sequence--;
}
}

public Object find(int index) {
if (index < 0 || index > this.size) {
throw new IllegalArgumentException("索引应大于0或不大于集合元素数");
} else {
return object[index];
}
}

public int size() {
return this.size;
}

}追问

list_tr={维纳 开发二部 张三 type[1,0,0,0,0,0,0,2,1,8,0]}
list_tr={维纳 开发二部 张三 type[1,0,0,0,0,0,0,2,1,8,0]}
合并成:
list_tr={维纳 开发二部 张三 type[2,0,0,0,0,0,0,4,2,16,0]}

追答

这不是将两个type数组里面的值加起来了吗,判断如果int或者基本类型的数组,就想起里面的值遍历出来进行相加,我不知道你这里是否判断数组名字一定要想同?
你这里的list_tr是什么类型数组? 里面有字符串,还有一个type数组?
把你的代码写全了,我突然觉得你这是javascript呢? 说明下语言。

追问

list_tr是ArrayList。现在是list_tr中存在多组数据,我现在是一条一条的比较。如果存在公司、部门、姓名相同的,就要把这些数组合并。

追答

里面多组数据不是同类型么? 就是说虽然数据的值不同,但是里面不都是 公司,部门,姓名这种数据么? 如果数据都是一样的,这些明显可以是一个bean的属性, 是否能封装为bean?

追问

不能。这是数显的全部动态显示。所以不能

追答

动态也是可以封装为bean的,不过这里不讨论这个了。
先循环list_tr
将里面的公司,部门,姓名三个数据封装到一个HashMap集合里,key是三个数据字符串拼一起,值是type,比如:
map.put(公司+部门+姓名 , type);
判断map中是否有相同的key,如果有进行type相加,type相加,可以遍历type数组,进行每个值相加。
等于间接做一个小缓存!

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-18
你运行一下,看看是不是你要的算法呢?
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class A {
private String company;
private String dept;
private String person;
private Integer[] type;
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public String getPerson() {
return person;
}
public void setPerson(String person) {
this.person = person;
}
public Integer[] getType() {
return type;
}
public void setType(Integer[] type) {
this.type = type;
}
public A(String company, String dept, String person, Integer[] type) {
this.company = company;
this.dept = dept;
this.person = person;
this.type = type;
}
@Override
public boolean equals(Object o) {
A a = (A) o;
if (a.company.equals(this.company) && a.dept.equals(this.dept)
&& a.person.equals(this.person)) {
return true;
}
return false;
}
@Override
public String toString() {
return this.company + " " + this.dept + " " + this.person + " "
+ Arrays.toString(this.type);
}
public A add(A a) {
Integer[] temp = null;
int i = 0;
if (this.equals(a)) {
for (int j : this.type) {
if (temp == null) {
temp = new Integer[a.type.length];
}
temp[i] = j + a.type[i];
i++;
}
return new A(this.company, this.dept, this.person, temp);
}
return null;
}
/**
*
* 测试
*
*/
public static void main(String[] args) {
A a1 = new A("维纳", "开发二部", "张三", new Integer[] { 1, 0, 0, 0, 0, 0, 0,
2, 1, 8, 0 });
A a2 = new A("维纳", "开发二部", "张三", new Integer[] { 1, 0, 0, 0, 0, 0, 0,
2, 1, 8, 0 });
A a3 = new A("维纳", "开发二部", "李四", new Integer[] { 1, 0, 0, 0, 0, 0, 0,
2, 1, 8, 0 });
A a4 = new A("维纳", "开发二部", "张三", new Integer[] { 1, 0, 0, 0, 0, 0, 0,
2, 1, 8, 0 });
A a5 = new A("维纳", "开发二部", "李四", new Integer[] { 1, 0, 0, 0, 0, 0, 0,
2, 1, 8, 0 });
List<A> l = new ArrayList<A>();
l.add(a1);
l.add(a2);
l.add(a3);
l.add(a4);
l.add(a5);
List<A> l2 = new ArrayList<A>();
for (A a : l) {
if (!l2.contains(a)) {
l2.add(a);
continue;
}
for (int i = 0; i < l2.size(); i++) {
if (l2.get(i).equals(a)) {
l2.set(i, l2.get(i).add(a));
// System.out.println(l2.get(i));
}
}
}
System.out.println(l2);
}
}
第2个回答  2012-12-18
如何将数组我值相加对吧?
<script language="javascript">
var arr=new Array(1,2,3,4,5)
var x;
x=arr[0]+arr[1];
document.write(x);
</script>

举个简单的例子吧!将数组值取出来,再运算!
如上“X”的结果为3!
over!相信你可以的!追问

不是啊,是在后台处理。list中存在一个数组。要将里面的数据相加。是两条数据相加。例如:
维纳 开发二部 张三 type[1,0,0,0,0,0,1,5.6,0,8,0]
维纳 开发二部 张三 type[1,0,0,0,0,0,0,2,1,8,0]
合并后:
维纳 开发二部 张三 type[2,0,0,0,0,0,1,7.6,1,16,0]

追答

分别遍历数组,相加,我老师说的,你不懂,我也不会了!

第3个回答  2012-12-18
int sum=0;
for(int i=0; i<arr.length; i++){
sum+=arr[i];

}

System.out.println("sum="+sum);
第4个回答  2012-12-18
你想问什么呢?追问

list_tr={维纳 开发二部 张三 type[1,0,0,0,0,0,0,2,1,8,0]}
list_tr={维纳 开发二部 张三 type[1,0,0,0,0,0,0,2,1,8,0]}
合并成:
list_tr={维纳 开发二部 张三 type[2,0,0,0,0,0,0,4,2,16,0]}

java数组中的值的求和有什么方法?
使用for循环计算总和:int sum = 0; for(int i = 0; i < arr.length; i++) { sum += arr[i]; } 输出总和:System.out.println("数组元素的总和为:" + sum);在Java 8及以上版本中,更简洁的方法是利用流(Stream)API。首先,使用Arrays类的stream方法将数组转换为IntStream,然后调用...

求教java中求数组中数的总和是调用哪个方法?
int sum=0; int [] a={100,200,300}; for(int i=0;i

用java编写数组求和,array[]和ArrayList()?
这个很简单。在第一个例子中你定义的数组的类型是int类型,sum+=a[i] 就是正确的。而在第二个例子中你将 ArrayList li转化成了Object的数组。在编辑的sum+=a[i] 报编译异常The operator += is undefined for the argument type(s) int, Object, 意思就是说Object的类型不能直接的用来进行+=...

java问题 如何用for循环将数组中的值相加
1、在for循环外定义变量和数组 int sum=0;\/\/定义一个变量int arr[] = {1,2,3,4};\/\/定义一个需要累加的数组2、for循环通过sum累加 for(int i=0;i<arr.length;i++){ sum = sum+arr[i];\/\/通过for循环,去除数组中的元素,累加到sum中} ...

java求两个数组相加,所得值返回另一个数组。
可以使用一个for循环实现两个数组元素相加,并将结果存储到一个新的数组中。代码如下:```java public static int[] addArrays(int[] arr1, int[] arr2) { int n = Math.max(arr1.length, arr2.length);int[] result = new int[n];for (int i = 0; i < n; i++) { int a =...

java中如何求一个数组中元素的和.
import java.util.Scanner;public class XiTi464 { public static void main(String[] args) { Scanner sr = new Scanner(System.in); System.out.print("输入数组元素个数:"); int a = sr.nextInt(); int score[] = new int[a]; for (int i = 0; i < a; i...

怎样用java编写将数组中条件相同数据相加
import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Test022 { \/** * @param args *\/ public static void main(String[] args) { \/\/ TODO Auto-generated method stub List<Item> list = new ArrayList<Item>(); list.add(new I...

Java数组元素求和的问题
public static void main(String[] args) { int[] numbers = { 68, 27, 95, 88, 171, 996, 51, 210};int sum = 0;for(int i : numbers) { if(i%2 == 0) { char[] strs = (i+"").toCharArray();if(strs[strs.length-1] != 7 && strs[strs.length-2] != 7) {...

java中sum是什么意思
在Java中,sum是指求和的意思。在编程语言中,求和可以用来处理一个集合中的数值数据。例如,如果我们有一个整数数组,我们可以使用Java中的sum函数将数组中所有的数值相加,并返回它们的总和。使用sum函数可以更方便地处理大量数字数据,并以快速的方式计算它们的总和。sum函数是Java中的一个内置函数,在...

Java二维数组元素相加问题
package retestC8;public class Summation { public static void main(String[] args) { String str[][]=new String[][]{{"1","2"},{"3","4"},{"5","6"},{"7","8"}}; \/\/怎样将这个二维的字符串型数组里面的数值全部加起来? int sum=0; for(int i=0;i<str.lengt...

相似回答