`
lwbbupt
  • 浏览: 36553 次
  • 性别: 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 应用程序中的各种字符串操作需求。

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

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

    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`则是对原...

    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