[英]Assignining one array to other which are diffrent in size in java
給定代碼:
float [] f3 = {2.7f};
float [] [] f2 = {{42.0f}, {1.7f, 1.9f}};
通過語句if(f2[1]==f3)
我應該了解什么? 結果為false
,但是我們是否在比較它們的大小?
您正在比較引用,因為在Java 數組中是對象 :由於這些是不同的對象,您將得到false
。
如果您有這個:
int[] f3 = { 100 };
int[][] f2 = { f3, { 2, 1 } };
System.out.println(f2[0] == f3);
輸出為true
因為您將引用f3
添加為數組f2
的元素。
f2[1] == f3
比較對不同float[]
實例的引用,它將永遠不會返回true。 改用Arrays.equals
f2[1]==f3
測試f2[1]
指向與f3
相同的地址。 因此,即使你寫
float [] f3={1.7f,1.9f};
float [] [] f2={{42.0f},{1.7f,1.9f}};
它仍然會返回假。 僅當您分配
f2[1] = f3;
反之亦然f2[1]==f3
將為真。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.