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`方法是.NET框架中的一个非常重要的成员,它属于`System.Array`类,用于在数组之间高效地复制元素。这个方法提供了多种重载形式,以适应不同的需求,包括处理不同类型和大小的索引以及数组长度。接下来,...
在本教程中,我们将探讨Oracle Array的常用方法封装,特别是如何将这些方法集成到一个PackageBody中,以实现高效且易用的数据库操作。 Oracle中的PL/SQL提供了一个名为PLS_INTEGER的类型,它用于处理数组索引。数组...
本文将详细介绍几种常用的Array操作方法:`push`、`pop`、`unshift`、`shift`以及`splice`,并探讨如何通过`delete`关键字和修改`length`属性来实现对数组的动态调整。 #### `push` 方法 `push`方法用于向数组的...
Collection是一个抽象的概念,它定义了一个集合的基本操作,但它不能直接实例化,需要通过它的实现类来使用。 Collections是一个专门的静态类,也位于java.util包下,提供了各种有关集合操作的静态方法,如搜索、...
首先,我们来看`Ext.Array`的一些基本操作: 1. **包含检查**:`contains()` 方法用于检查数组是否包含特定的元素。例如,`Ext.Array.contains(array, item)` 返回`true`或`false`。 2. **添加元素**:`add()` ...
### Delphi中String,PChar,PByte,Array of Char,Array of Byte 互相转换 在Delphi编程语言中,字符串和其他与...掌握了这些基本的转换方法后,开发者可以更加灵活地处理 Delphi 应用程序中的各种字符串操作需求。
Array类的方法如`Copy`用于复制数组的部分或全部,`Sort`用于对数组元素进行排序。 ArrayList是.NET Framework早期版本中的动态数组,它可以自动调整大小以适应存储更多的元素。尽管ArrayList可以存储任何类型的...
Array是一种最基本的数据结构,用于存储相同类型的多个元素。创建Array数组的基本语法如下: ```csharp type[] arrayName = new type[size]; ``` 例如: ```csharp int[] a = new int[2]; // 创建一个包含两个...
2. 排序:使用Array类提供的Sort方法对一维数组进行排序,如 `Array.Sort(numbers);` 3. 拷贝:Array类提供了Copy方法来创建数组的副本,防止原始数组被修改。 4. 查找:可以使用Array类的BinarySearch或LINQ的...
数组是计算机科学中最基本的数据结构之一,熟练掌握其操作能帮助开发者编写出更加高效和可维护的代码。在这个`array_sum_java_SUM_array_`的例子中,我们学习了如何在Java中计算数组元素的总和,无论是通过传统的...
2. 添加元素:使用`acarray::append()`方法添加元素到数组中,每添加一个元素都会检查是否需要扩容。 3. 访问元素:通过`acarray::operator[]`获取指定索引处的元素。 4. 调整长度:使用`acarray::setlogicallength...
本文主要介绍了Python中列表(`list`)以及列表与数组(`array`)之间的相互转换方法。列表是Python中最基础的数据结构之一,支持灵活地添加和删除元素。数组则更适合于数值计算,提供更高效的内存管理和运算性能。通过...
昨天出去前端面试又失败,期间问了个有关于数组对象的问题,下面就这类问题总结下JavaScript常用的数组操作方法。 一、何为数组(Array)对象 数组对象是使用单独的变量名来存储一系列的值。 二、创建数组的三种方式...
数组的过滤操作是其中的一个常见需求,Array.prototype.filter 方法为此提供了强大的支持。本文将深入探讨 Array.prototype.filter 方法的工作原理、使用场景、代码示例以及与其他数组方法的比较。 Array.prototype....
首先,`dojo.forEach`是Dojo中用于遍历数组的基本方法。它接受一个数组`items`作为参数,然后对数组中的每个元素执行传入的回调函数。回调函数内部,`item`代表当前处理的元素,`i`是元素的索引,`refItems`则是对原...
HP Smart Array P400 阵列卡配置阵列的方法 HP Smart Array P400 阵列卡是 HP 公司推出的一个高性能的阵列卡,旨在提高服务器存储性能和可靠性。今天,我们将讨论如何使用 HP Smart Array P400 阵列卡配置阵列。 ...
首先,我们来了解`string-array`的基本结构。在`res/values`目录下的`strings.xml`文件中,你可以这样定义一个`string-array`: ```xml <string-array name="example_array"> 字符串1 字符串2 字符串3 ...
总结来说,这个workshop将涵盖数组的基本操作,如创建、遍历和排序,还将深入到ArrayList这一数组的扩展,讨论其动态增长的机制。同时,我们还会探讨链表的实现,理解链表结构如何存储和管理数据,以及链表操作的...
了解了上述基本操作后,在实际项目中,我们经常使用数组来处理各种数据,比如存储用户信息、处理产品列表、甚至操作DOM元素集合等。数组为这些操作提供了高效且直观的方式,极大地提高了开发效率和代码的可维护性。 ...
在编程领域,数组是一种基本的数据结构,用于存储同类型的元素集合。数组的每个元素通过一个唯一的索引来访问,索引通常是从0开始的。数组在Java编程语言中扮演着核心角色,是许多复杂数据结构的基础。LeetCode是一...