Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 即使数据集更改为另一个值,哈希也不会更改_Java_Arrays_Java 8_Blockchain_Hashcode - Fatal编程技术网

Java 即使数据集更改为另一个值,哈希也不会更改

Java 即使数据集更改为另一个值,哈希也不会更改,java,arrays,java-8,blockchain,hashcode,Java,Arrays,Java 8,Blockchain,Hashcode,我用java创建了简单的区块链程序。目前,我正在为事务数据集生成哈希。当我更改事务的数据集时,哈希不会更改 首先,我创建了一个带有transactionName、transactionID和transaction时间戳值的事务类。当前自动生成transactionDate和transactionID 这是MainNode.pkg包 import NodeData.pkg.TransactionClass; import sun.util.logging.PlatformLogger; impo

我用java创建了简单的区块链程序。目前,我正在为事务数据集生成哈希。当我更改事务的数据集时,哈希不会更改

首先,我创建了一个带有transactionName、transactionID和transaction时间戳值的事务类。当前自动生成transactionDate和transactionID

这是MainNode.pkg包

import NodeData.pkg.TransactionClass;
import sun.util.logging.PlatformLogger;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * @author melanrashitha
 * @date 11/12/19
 * @project BlockChainArchController
 */
public class MainNode {

        private int hash;
        private int prevHash;
        private TransactionClass[] transactionData;
        Logger logger = Logger.getLogger("MainNode");

    public MainNode(int prevHash, TransactionClass[] transactionData) {

        //Logger MainNode Transaction class init
        logger.log(Level.INFO,"Node HB Received");


        this.prevHash = prevHash;
        logger.log(Level.INFO,"Node prevHash loaded : "+prevHash);

        this.transactionData = transactionData;

        logger.log(Level.INFO,"Node HB Received");
        logger.log(Level.INFO,"Node transactionData loaded : "+transactionData);




        //Current Calculated blockhash calculated on current transaction data, prev hashcode
        logger.log(Level.INFO,"Node Hash Generating ");
        Object[] object = new Object[] {transactionData,prevHash};

        this.hash = object.hashCode();
        logger.log(Level.INFO,"Node Hash Generated  :  "+ this.hash);
        logger.log(Level.INFO,"Node HB Detached");
    }

    public int getHash() {
        return hash;
    }

    public int getPrevHash() {
        return prevHash;
    }

    public TransactionClass[] getTransactionData() {
        return transactionData;
    }
}
当事务数据更改时,它仍然显示相同的哈希值 价值观

下面是日志消息

/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=55843:/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/lib/tools.jar:/Users/melanrashitha/Desktop/Desktop/stripe-payment-gateway-module/BlockChainArchController/out/production/BlockChainArchController MainNode.pkg.BlockChainMain
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass <init>
INFO: Transaction HB Recieved
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass setTransactionDate
INFO: Transaction Date Created : 15068497599682
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass setTransactionID
INFO: TransactionID Created : 64c27bf9-d3e6-48bc-b2b5-d6cc10f62df7
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass <init>
INFO: Transaction HB Detached
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass <init>
INFO: Transaction HB Recieved
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass setTransactionDate
INFO: Transaction Date Created : 15068523666838
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass setTransactionID
INFO: TransactionID Created : 9796a6c7-9d74-404a-8434-9844c18e481a
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass <init>
INFO: Transaction HB Detached
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass <init>
INFO: Transaction HB Recieved
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass setTransactionDate
INFO: Transaction Date Created : 15068528416745
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass setTransactionID
INFO: TransactionID Created : 9469aa4e-70fb-4088-9261-a5274f4214fc
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass <init>
INFO: Transaction HB Detached
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass <init>
INFO: Transaction HB Recieved
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass setTransactionDate
INFO: Transaction Date Created : 15068533175911
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass setTransactionID
INFO: TransactionID Created : 1d179fc7-eb39-4c81-bfed-4afdb8579a8f
Nov 12, 2019 11:57:02 AM NodeData.pkg.TransactionClass <init>
INFO: Transaction HB Detached
Nov 12, 2019 11:57:02 AM MainNode.pkg.MainNode <init>
INFO: Node HB Received
Nov 12, 2019 11:57:02 AM MainNode.pkg.MainNode <init>
INFO: Node prevHash loaded : 1
Nov 12, 2019 11:57:02 AM MainNode.pkg.MainNode <init>
INFO: Node HB Received
Nov 12, 2019 11:57:02 AM MainNode.pkg.MainNode <init>
INFO: Node transactionData loaded : [LNodeData.pkg.TransactionClass;@5caf905d
Nov 12, 2019 11:57:02 AM MainNode.pkg.MainNode <init>
INFO: Node Hash Generating `enter code here`
Nov 12, 2019 11:57:02 AM MainNode.pkg.MainNode <init>
INFO: Node Hash Generated  :  41359092
Nov 12, 2019 11:57:02 AM MainNode.pkg.MainNode <init>
INFO: Node HB Detached
/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/bin/Java“-javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/IDEA\u rt.jar=55843:/Applications/IntelliJ IDEA.app/Contents/bin”-Dfile.encoding=UTF-8-classpath/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0Ô/jdnLibrary/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0212.jdk/Contents/Home/jre/jre/lib/ext/localedata/jar:/Library/Java/JavaVirtualMachines/jdk1.8.0Ô/jrk/jrkn、 jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/ext/sunjjce_provider.jar:/Library/Java/JavaVirtualMachines/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/jre/jre/jre/jre/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/jce.jar:/Library/JavaVirtualMachines/jdk1.8.0212.jdk/Contents/Home/jdk1.8.0212.jdk/jdk/Contents/Home/jdr/jdr:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/management agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jdk1.8.0212.jdr/plugin.jar:/libLibrary/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/lib/ant javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0212.jdk/Home/lib/javamx.jar:/Java/javachines/jdk1.8.0_212.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Home/lib/tools.jar:/Users/melanrashitha/Desktop/indexteway模块/BlockChainArchController/out/production/BlockChainArchController MainNode.pkg.BlockChainMain
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass
信息:已收到交易HB
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass设置TransactionDate
信息:创建交易日期:15068497599682
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass setTransactionID
信息:创建的交易ID:64c27bf9-d3e6-48bc-b2b5-d6cc10f62df7
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass
信息:交易记录
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass
信息:已收到交易HB
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass设置TransactionDate
信息:创建交易日期:15068523666838
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass setTransactionID
信息:创建的事务ID:9796a6c7-9d74-404a-8434-9844c18e481a
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass
信息:交易记录
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass
信息:已收到交易HB
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass设置TransactionDate
信息:创建交易日期:15068528416745
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass setTransactionID
信息:创建的事务ID:9469aa4e-70fb-4088-9261-a5274f4214fc
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass
信息:交易记录
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass
信息:已收到交易HB
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass设置TransactionDate
信息:创建交易日期:15068533175911
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass setTransactionID
信息:创建的事务ID:1d179fc7-eb39-4c81-bfed-4afdb8579a8f
2019年11月12日上午11:57:02 NodeData.pkg.TransactionClass
信息:交易记录
2019年11月12日上午11:57:02 MainNode.pkg.MainNode
信息:已收到节点HB
2019年11月12日上午11:57:02 MainNode.pkg.MainNode
信息:已加载节点前缀哈希:1
2019年11月12日上午11:57:02 MainNode.pkg.MainNode
信息:已收到节点HB
2019年11月12日上午11:57:02 MainNode.pkg.MainNode
信息:已加载节点transactionData:[LNodeData.pkg.TransactionClass;@5caf905d
2019年11月12日上午11:57:02 MainNode.pkg.MainNode
信息:节点哈希生成`在此处输入代码`
2019年11月12日上午11:57:02 MainNode.pkg.MainNode
信息:生成的节点哈希:41359092
2019年11月12日上午11:57:02 MainNode.pkg.MainNode
信息:节点已分离

问题在于,您正在对数组调用
hashCode()
,在您的例子中是
Object[]Object
。由于数组不重写Object类中的
hashCode()
方法,因此您将从该方法获得结果。此方法将
String[] data = new String[2];
System.out.println(Arrays.toString(data)+" - "+data.hashCode());
data[0] = "abc";
System.out.println(Arrays.toString(data)+" - "+data.hashCode());
data[1] = "def";
System.out.println(Arrays.toString(data)+" - "+data.hashCode());
[null, null] - 705927765
[abc, null] - 705927765
[abc, def] - 705927765
String[] data = new String[2];
System.out.println(Arrays.toString(data)+" - "+Arrays.deepHashCode(data));
data[0] = "abc";
System.out.println(Arrays.toString(data)+" - "+Arrays.deepHashCode(data));
data[1] = "def";
System.out.println(Arrays.toString(data)+" - "+Arrays.deepHashCode(data));
[null, null] - 961
[abc, null] - 2987935
[abc, def] - 3087268