Java关于数组对象赋值与指针

摘要:
PageRank算法的实现中出现了两个错误:1。当将值分配给double类型时,分母在除法中没有设置为double类型,而是设置为int类型,从而导致商为0且延迟为2的结果错误。当定义两个数组并将值分配到数组时,我忘记了数组是一个具有直接nowRank=resultRank的对象;resultRank被重新分配,因此nowRank中的元素值也会更改。因为数组是一个对象,所以赋值意味着它指向相同的对象代码:publ

在实现PageRank算法中犯了两个错误,

1:在对double类型赋值时,除法中没有将分母设置为double类型,而是int类型,导致出现商为0的结果错误,导致推迟

2:当定义两个数组时,对数组赋值时,忘记了,数组是对象的特点直接nowRank=resultRank;

其中resultRank又重新赋值,所以导致nowRank中元素值也发生变化,因为数组是对象,赋值意味着指向了同一个对象

代码:

public class TestDouble {

    public static void main(String[] args) {
        int count=2;
        double d=0.25;
        double value=d/count;
        System.out.println(value);
        int[] now=new int[2];
        int[] result=new int[2];
        now[0]=3;
        now[1]=4;
        result[0]=1;
        result[1]=2;
        //
        now=result;
        //
        for (int i = 0; i < now.length; i++) {
            System.out.println(now[i]+" "+result[i]);
        }
        for (int i = 0; i < result.length; i++) {
            now[i]=result[i];
        }
        for (int i = 0; i < result.length; i++) {
            System.out.println("r:"+now[i]);
        }
    }
}

免责声明:文章转载自《Java关于数组对象赋值与指针》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VBS创建文件hdu-3584 Cube---三维树状数组+区域更新单点查询下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C/C++获取系统当前时间

C/C++获取系统当前时间   C库中与系统时间相关的函数定义在<time.h>头文件中, C++定义在<ctime>头文件中。 一、time(time_t*)函数 函数定义如下: time_t time (time_t* timer); 获取系统当前日历时间 UTC 1970-01-01 00:00:00开始的unix时间戳参数:...

Perl函数及参数介绍

子例程,函数  子例程,函数的作用域是指在程序中能够看到它的位置范围。子例程是全局的,可以放在脚本中的任意位置,甚至放在其他脚本文件中。当使用来自其他文件的子例程时,应当使用关键字do,require或use将它加载到脚本里。若要调用一个子例程,用户可以在子例程前加上&符号,或在子例程前加上do关键字,也可以在子例程名后面加上一组括号。如果使用了向...

Shell 编程

  Shell 是一门脚本语言(又称解释型语言),Shell 其实就是一个纯文本文件,通常以【#!/bin/bash】开始。脚本自上而下,从左至右分析并执行,其中【#】后面的为注释。脚本有以下几种运行方式:(1) 【bash shell.sh】 (2)【sh shell.sh】(3)【./shell.sh】当前目录下执行,用户必须有可执行权限 (4)【. ....

OptimalSolution(5)--数组和矩阵问题(1)简单

  一、转圈打印矩阵   题目:给定一个整型矩阵matrix,按照转圈的方式打印它。   要求:额外空间复杂度为O(1) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 打印结果为:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10   思路:矩阵分圈处理问题。用...

倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_数组

声明和实例化数组的方法如下,你可以声明各种基本类型的数组 i: INT; array1: ARRAY [0..500] OF INT;   FOR i := 0 TO 5000 DO     array1[i] := i; END_FOR   也可以声明下标不从0开始的数组,比如array2和array3就都不是下标从0开始的数组  ...

delphi中nil、null、UnAssigned区别

nil:空指针,空地址,对象也是指针,所以可以object:=nil;null:null是一个未定义值的变量,既不是0也不代表空字符串,它是未定义的。http://www.delphibasics.co.uk/RTL.asp?Name=Null判断对象为不为空用ifassigned(object)then和ifobject=nilthen都一样可以。 ni...