`
lwbbupt
  • 浏览: 36235 次
  • 性别: 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);
    }

 

分享到:
评论

相关推荐

    Array.Copy 方法

    `Array.Copy`方法是.NET框架中的一个非常重要的成员,它属于`System.Array`类,用于在数组之间高效地复制元素。这个方法提供了多种重载形式,以适应不同的需求,包括处理不同类型和大小的索引以及数组长度。接下来,...

    Oracle Array常用方法封装

    在本教程中,我们将探讨Oracle Array的常用方法封装,特别是如何将这些方法集成到一个PackageBody中,以实现高效且易用的数据库操作。 Oracle中的PL/SQL提供了一个名为PLS_INTEGER的类型,它用于处理数组索引。数组...

    flex array 一些操作

    本文将详细介绍几种常用的Array操作方法:`push`、`pop`、`unshift`、`shift`以及`splice`,并探讨如何通过`delete`关键字和修改`length`属性来实现对数组的动态调整。 #### `push` 方法 `push`方法用于向数组的...

    Collection与Collections,Array与Arrays的区别

    Collection是一个抽象的概念,它定义了一个集合的基本操作,但它不能直接实例化,需要通过它的实现类来使用。 Collections是一个专门的静态类,也位于java.util包下,提供了各种有关集合操作的静态方法,如搜索、...

    Ext.Array例子

    首先,我们来看`Ext.Array`的一些基本操作: 1. **包含检查**:`contains()` 方法用于检查数组是否包含特定的元素。例如,`Ext.Array.contains(array, item)` 返回`true`或`false`。 2. **添加元素**:`add()` ...

    delphi中String,PChar,PByte,Array of Char,Array of Byte 互相转换

    ### Delphi中String,PChar,PByte,Array of Char,Array of Byte 互相转换 在Delphi编程语言中,字符串和其他与...掌握了这些基本的转换方法后,开发者可以更加灵活地处理 Delphi 应用程序中的各种字符串操作需求。

    C_Array Array数组

    Array类的方法如`Copy`用于复制数组的部分或全部,`Sort`用于对数组元素进行排序。 ArrayList是.NET Framework早期版本中的动态数组,它可以自动调整大小以适应存储更多的元素。尽管ArrayList可以存储任何类型的...

    C# Array和ArrayList,List区别

    Array是一种最基本的数据结构,用于存储相同类型的多个元素。创建Array数组的基本语法如下: ```csharp type[] arrayName = new type[size]; ``` 例如: ```csharp int[] a = new int[2]; // 创建一个包含两个...

    Array_C#数组学习_

    2. 排序:使用Array类提供的Sort方法对一维数组进行排序,如 `Array.Sort(numbers);` 3. 拷贝:Array类提供了Copy方法来创建数组的副本,防止原始数组被修改。 4. 查找:可以使用Array类的BinarySearch或LINQ的...

    array_sum_java_SUM_array_

    数组是计算机科学中最基本的数据结构之一,熟练掌握其操作能帮助开发者编写出更加高效和可维护的代码。在这个`array_sum_java_SUM_array_`的例子中,我们学习了如何在Java中计算数组元素的总和,无论是通过传统的...

    AcArray类模板

    2. 添加元素:使用`acarray::append()`方法添加元素到数组中,每添加一个元素都会检查是否需要扩容。 3. 访问元素:通过`acarray::operator[]`获取指定索引处的元素。 4. 调整长度:使用`acarray::setlogicallength...

    Python中列表list以及list与数组array的相互转换实现方法

    本文主要介绍了Python中列表(`list`)以及列表与数组(`array`)之间的相互转换方法。列表是Python中最基础的数据结构之一,支持灵活地添加和删除元素。数组则更适合于数值计算,提供更高效的内存管理和运算性能。通过...

    JavaScript Array对象基本方法详解

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

    JavaScript 中的 `Array.prototype.filter` 方法全解析

    数组的过滤操作是其中的一个常见需求,Array.prototype.filter 方法为此提供了强大的支持。本文将深入探讨 Array.prototype.filter 方法的工作原理、使用场景、代码示例以及与其他数组方法的比较。 Array.prototype....

    Dojo的Array处理

    首先,`dojo.forEach`是Dojo中用于遍历数组的基本方法。它接受一个数组`items`作为参数,然后对数组中的每个元素执行传入的回调函数。回调函数内部,`item`代表当前处理的元素,`i`是元素的索引,`refItems`则是对原...

    HP Smart Array P400阵列卡配置阵列的方法

    HP Smart Array P400 阵列卡配置阵列的方法 HP Smart Array P400 阵列卡是 HP 公司推出的一个高性能的阵列卡,旨在提高服务器存储性能和可靠性。今天,我们将讨论如何使用 HP Smart Array P400 阵列卡配置阵列。 ...

    Android的string-array数据源简单使用

    首先,我们来了解`string-array`的基本结构。在`res/values`目录下的`strings.xml`文件中,你可以这样定义一个`string-array`: ```xml &lt;string-array name="example_array"&gt; 字符串1 字符串2 字符串3 ...

    Array的workshop操作和扩展

    总结来说,这个workshop将涵盖数组的基本操作,如创建、遍历和排序,还将深入到ArrayList这一数组的扩展,讨论其动态增长的机制。同时,我们还会探讨链表的实现,理解链表结构如何存储和管理数据,以及链表操作的...

    JS针对Array的各种操作汇总

    了解了上述基本操作后,在实际项目中,我们经常使用数组来处理各种数据,比如存储用户信息、处理产品列表、甚至操作DOM元素集合等。数组为这些操作提供了高效且直观的方式,极大地提高了开发效率和代码的可维护性。 ...

    array_array_

    在编程领域,数组是一种基本的数据结构,用于存储同类型的元素集合。数组的每个元素通过一个唯一的索引来访问,索引通常是从0开始的。数组在Java编程语言中扮演着核心角色,是许多复杂数据结构的基础。LeetCode是一...

Global site tag (gtag.js) - Google Analytics