`
lwbbupt
  • 浏览: 35245 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Array基本操作方法

阅读更多
package algorithm.unit1;

import java.util.Arrays;

/**
 * Created by lwb on 2015/3/13.
 */
public class Array {
    /**
     * 获取数组最大值
     */
    public static double getMax(double[] array) {
        double max = array[0];
        for (int i = 0; i < array.length; i++)
            if (array[i] > max)
                max = array[i];
        return max;
    }

    /**
     * 计算数组元素平均值
     */
    public static double getAverage(double[] array) {
        double total = 0;
        int length = array.length;
        for (int i = 0; i < length; i++)
            total += array[i];
        return total / length;
    }

    /**
     * 复制数组
     */

    public static double[] getCopy(double[] array) {
        int length = array.length;
        double[] copy = new double[length];
        for (int i = 0; i < length; i++)
            copy[i] = array[i];
        return copy;
    }

    /**
     * 颠倒数组
     */
    public static double[] getReverse(double[] array) {
        int length = array.length;
        for (int i = 0; i < length / 2; i++) {
            double temp = array[i];
            array[i] = array[length - i - 1];
            array[length - 1 - i] = temp;
        }
        return array;
    }

    /**
     * 矩阵相乘
     */
    public static double[][] getProduct(double[][] a1, double[][] a2) {
        int line = a1.length;
        int row = a2[0].length;
        if (a1.length == a2[0].length && a1[0].length == a2.length) {
            double[][] product = new double[line][row];
            for (int i = 0; i < line; i++) {
                for (int j = 0; j < row; j++) {
                    for (int k = 0; k < a1[0].length; k++)
                        product[i][j] += a1[i][k] * a2[k][j];
                }
            }
            return product;
        } else throw new IllegalArgumentException("参数错误");
    }

    public static void main(String[] args) {
        double[][] a1 = {{1,2},{3,4}};
        double[][] a2= {{1,2},{3,4}};
        System.out.println("test");
        System.out.println(Arrays.deepToString(Array.getProduct(a1, a2)));
    }

}

 Arrays.deepToString()方法:

public static String deepToString(Object[] a) {
        if (a == null)
            return "null";

        int bufLen = 20 * a.length;
        if (a.length != 0 && bufLen <= 0)
            bufLen = Integer.MAX_VALUE;
        StringBuilder buf = new StringBuilder(bufLen);
        deepToString(a, buf, new HashSet<Object[]>());
        return buf.toString();
    }

    private static void deepToString(Object[] a, StringBuilder buf,
                                     Set<Object[]> dejaVu) {
        if (a == null) {
            buf.append("null");
            return;
        }
        int iMax = a.length - 1;
        if (iMax == -1) {
            buf.append("[]");
            return;
        }

        dejaVu.add(a);
        buf.append('[');
        for (int i = 0; ; i++) {

            Object element = a[i];
            if (element == null) {
                buf.append("null");
            } else {
                Class eClass = element.getClass();

                if (eClass.isArray()) {
                    if (eClass == byte[].class)
                        buf.append(toString((byte[]) element));
                    else if (eClass == short[].class)
                        buf.append(toString((short[]) element));
                    else if (eClass == int[].class)
                        buf.append(toString((int[]) element));
                    else if (eClass == long[].class)
                        buf.append(toString((long[]) element));
                    else if (eClass == char[].class)
                        buf.append(toString((char[]) element));
                    else if (eClass == float[].class)
                        buf.append(toString((float[]) element));
                    else if (eClass == double[].class)
                        buf.append(toString((double[]) element));
                    else if (eClass == boolean[].class)
                        buf.append(toString((boolean[]) element));
                    else { // element is an array of object references
                        if (dejaVu.contains(element))
                            buf.append("[...]");
                        else
                            deepToString((Object[])element, buf, dejaVu);
                    }
                } else {  // element is non-null and not an array
                    buf.append(element.toString());
                }
            }
            if (i == iMax)
                break;
            buf.append(", ");
        }
        buf.append(']');
        dejaVu.remove(a);
    }

 

分享到:
评论

相关推荐

    JavaScript Array对象基本方法详解

    昨天出去前端面试又失败,期间问了个有关于数组对象的问题,下面就这类问题总结下JavaScript常用的数组操作方法。 一、何为数组(Array)对象 数组对象是使用单独的变量名来存储一系列的值。 二、创建数组的三种方式...

    JavaScript字符串String和Array操作的有趣方法

    字符串和数组在程序编写过程中是十分常用的类型,因此程序语言都会将String和Array作为基本类型,并提供许多字符串和数组的方法来简化对字符串的操作。JavaScript里面也提供了String类型和Array类型,并且有很多基本...

    JS针对Array的各种操作汇总

    今天总结一下Array的一些简单和基本的操作,也来巩固下自己的基础知识。 一、如何创建Array(下面直接说数组) 创建数组主要有两种方法,第一种是使用数组构造函数,第二种是使用数组字面量表示法。 1、使用数组构造...

    js Array操作的最简短最容易理解方法

    Array 的方法1 Array.join(): 把所有元素用符号连结成string返回, 如果元素不是基本类型, 先调用toString.它对应string.split();arr = [1,2,true,3,4,5];(arr.join(‘-‘) == ‘1-2-true-3-4-5’; 2 Array.reverse...

    Java程序设计基础:一维数组应用数组作为方法形参.pptx

    任务:编写方法实现下列一维数组的基本操作 数组作为方法的形参 任务1、使用随机数初始化一个整型数组 任务2、显示一个整型数组中的所有元素 任务3、对数组元素求平均 任务4、将数组内容反向存储 1、使用随机数初始...

    Prototype Array对象 学习

    个对象扩展了JS原生的Array对象,提供了一些基本的工具函数,有些方法非常简单,源码里就不在注释了。

    PHP 数组基本操作方法详解

    PHP 还提供了超过 70 个内建函数来操作数组。 创建数组 使用 array() 语言结构创建数组: &lt;?php $arr_age1 = array(18, 20, 25); // 或者: $arr_age2 = array("wang"=&gt;18, "li"=&gt;20, "zhang"=&gt;25); // 空数组...

    【JavaScript源代码】JavaScript类型检测的方法实例教程.docx

    JavaScript类型检测的方法实例教程  JavaScript是web前端广泛应用的语言之一,在网页应用制作、脚本制作、小程序等诸多领域具有不可替代的的地位。笔者学习了一端时间的前端,颇感JS知识点的繁碎,故将学习到的一些...

    ECMAScript 6即将带给我们新的数组操作方法前瞻

    本文介绍ECMAScript 6即将带给我们新的数组操作方法,以及在怎样在现有浏览器应用这些新的数组特性。 Note: 我将使用交替使用构造器(constructor)和类(class)两个术语。 类方法 数组(Array)自身所拥有的方法。 Array...

    array-readme-v-000

    基本数组:创建,检索,更新和删除概述本课将深入探讨如何创建,操作和检索数组中的数据。目标创建并填充数组。 使用不同的方法将项目添加到数组。 使用其他方法从数组中删除项目。 使用sort,reverse和include方法...

    more-array-methods:Node.js的一个非常简单的模块,为数组添加了一些额外的有用方法。 完全无聊

    更多数组方法! 您是否曾经受够了数组的方法远少于应有的方法的事实呢? 不?... 大多数方法都是非常基本的,并且花费了大约两分钟的时间来编写代码,但是最后将它们全部集成到一个大模块中仍然很有

    array-readme-london-web-062419

    基本数组:创建,检索,更新和删除 概述 本课将深入探讨如何创建,操作和检索数组中的数据。 目标 创建并填充数组。 使用不同的方法将项目添加到数组。 使用其他方法从数组中删除项目。 使用sort,reverse和...

    array-readme-nyc-web-060319

    基本数组:创建,检索,更新和删除概述本课将深入探讨如何创建,操作和检索数组中的数据。目标创建并填充数组。 使用不同的方法将项目添加到数组。 使用其他方法从数组中删除项目。 使用sort,reverse和include方法...

    每天一篇javascript学习小结(Array数组)

    主要介绍了javascript中的Array数组知识点,对数组的基本使用方法,以及各种方法进行整理,感兴趣的小伙伴们可以参考一下

    PHP中常用的数组操作方法笔记整理

    数组的基本操作 php定义数组: &lt;?php $array = array(); $array["key"] = "values"; ?&gt; 在PHP中声明数组的方式主要有两种: 1.用array()函数声明数组, 2.直接为数组元素赋值。 &lt;?php //array数组 ...

    JavaScript数组方法大全(推荐)

    数组在笔试中经常会出现的面试题,javascript中的数组与其他语言中的数组有些不同,为了方便之后数组的方法学习,下面小编给大家整理了关于数组的操作方法,一起看看吧。 数组创建 JavaScript中创建数组有两种方式,...

    pytorch基础框架知识学习.doc

    随着人工智能的火热发展,深度学习技能也变得愈加...其实这个和numpy里面的array是比较相似的,tensor也可以从numpy的array进行转化。转换方法主要有几种,可以用torch.from_numpy,也可以直接用torch.tensor进行转换。

    array-readme-online-web-ft-112618

    基本数组:创建,检索,更新和删除 概述 本课将深入探讨如何创建,操作和检索数组中的数据。 目标 创建并填充数组。 使用不同的方法将项目添加到数组。 使用其他方法从数组中删除项目。 使用sort,reverse和...

Global site tag (gtag.js) - Google Analytics