java数据结构之矩阵的实现

这里是借助Vector,以二维数组的形式实现矩阵,并且完成矩阵相加的运算

import java.util.HashSet;
import java.util.Random;
import java.util.Vector;


public class SetTest {
//	static HashSet s=new HashSet(3);
	public static void main(String[] args)
	{
		Matrix x1=new Matrix(3,4);
		Matrix x2=new Matrix(3,4);
		Random r=new Random();
		for(int i=0;i<3;i++)
		{
			for(int j=0;j<4;j++)
			{
				x1.set(i, j, r.nextInt(10));
			}
		}
		
		for(int i=0;i<3;i++)
		{
			for(int j=0;j<4;j++)
			{
				x2.set(i, j, r.nextInt(10));
			}
		}
		x1.print();
		System.out.println();
		x2.print();
		System.out.println();
		
		x1.add(x2).print();
	}
}

class Matrix{
	private Vector values;
	private int row;
	private int col;
	
	public Matrix(int row,int col)
	{
		values=new Vector(row);
		for(int i=0;i<row;i++)
		{
			Vector c=new Vector(col);
			values.add(c);
			for(int j=0;j<col;j++)
			{
				c.add(null);
			}
			
		}
		this.row=row;this.col=col;
	}
	
	public void set(int row,int col,Object value)
	{
		Vector v=(Vector) values.get(row);
		v.set(col, value);
		
	}
	
	public Object get(int row,int col)
	{
		Vector v=(Vector) values.get(row);
		return v.get(col);
	}
	
	public int width()
	{
		return col;
	}
	
	public int height()
	{
		return row;
	}
	
	public Matrix add(Matrix x)
	{
		Matrix result=new Matrix(row,col);
		for(int i=0;i<row;i++)
		{
			for(int j=0;j<col;j++)
			{
				Integer integer1=(Integer) this.get(i, j);
				Integer integer2=(Integer) x.get(i, j);
				result.set(i, j, new Integer(integer1.intValue()+integer2.intValue()));
			}
		}
		return result;
	}
	
	public void print()
	{
		for(int i=0;i<row;i++)
		{
			for(int j=0;j<col;j++)
			{
				System.out.print(this.get(i, j)+" ");
			}
			System.out.println();
		}
	}
	
}
经验分享 程序员 微信小程序 职场和发展