为什么数组"matrix[0]"
也排序,需要Systemcopy?
int[] check = matrix[0];
Arrays.sort(check);
现在我使用Systemcopy修复此问题,但为什么?
答案 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]
。要使它们成为两个不同的数组,您需要进行深层复制。