为什么array.sorts对父数组进行排序?

时间:2018-05-24 20:53:39

标签: java arrays sorting

为什么数组"matrix[0]"也排序,需要Systemcopy?

int[] check = matrix[0];

Arrays.sort(check);

现在我使用Systemcopy修复此问题,但为什么?

2 个答案:

答案 0 :(得分:1)

这一行:function resizeImg(source) { const img = new Image; img.src = source; img.onload = function() { const width = img.naturalWidth; const height = img.naturalHeight; const ratio = Math.min(targetWidth / width, targetHeight / height); const resizer = window.pica(); const canvas = document.createElement("canvas"); const ctx = canvas.getContext("2d"); ctx.canvas.width = width * ratio; ctx.canvas.height = height * ratio; resizer.resize(img, canvas, { quality: 3, alpha: true, unsharpAmount: 0 }).then(result => resizer.toBlob(result, 'image/jpeg', 0.90)).then(blob => imgBlobArray.push(blob)).then(function() { console.log(i); console.log(imgBlobArray); }); }; } document.getElementById('select').onchange = function(evt) { for (let i = 0; i < this.files.length; i++) { resizeImg(window.URL.createObjectURL(this.files[i])); } } int[] check = matrix[0]引用分配给matrix[0]。这意味着您在check上执行的任何操作都将反映在check中。虽然引用不相同,但内存位置是,除非您创建副本(如您所提到的)。

答案 1 :(得分:1)

执行int[] check = matrix[0]后,check现在引用matrix[0]。要使它们成为两个不同的数组,您需要进行深层复制。