[英]java linkedlist copy : why my compiler show clone method error?
這是我的代碼,在這一行
tem_left = (LinkedList) leftover.clone();
我的 Intellij 在.clone() 方法下顯示了紅色波浪線(順便說一句,如何描述這條紅色波浪線?提示錯誤?)它說 clone() 在 Java.lang.Object 中具有受保護的訪問權限。 這是我在網上找到的將鏈接列表復制到另一個鏈接列表的內容。 我做錯了什么,我應該如何糾正?
package lc_771_Jewels;
import java.util.*;
import java.util.LinkedList;
import java.util.Queue;
public class Jewels_discuss {
public int count_jewels(String jewels, String stones){
char[] jewels_kind = jewels.toCharArray();
char[] stone_list = stones.toCharArray();
int count = 0;
Queue<Character> tem_left = new LinkedList<>();
for (int i = 0; i < stone_list.length; i++) {
tem_left.offer(stone_list[i]);
}
for (int i = 0; i < jewels_kind.length; i++) {
Queue<Character> leftover = new LinkedList<>();
char tem_jewel = jewels_kind[i];
for (int j = 0; j < tem_left.size(); j++) {
if (tem_jewel!= stone_list[i] ){
leftover.offer(stone_list[i]) ;
}
else {
count++;
}
}
tem_left = (LinkedList) leftover.clone();
}
return count;
}
}
正如IDEA所暗示的,它顯示了Queue接口的克隆方法是Object。
protected native Object clone() throws CloneNotSupportedException;
我們不能從外部調用受保護的方法。
但是,我們可以選擇一個實現,將 clone 方法從protected 改成public 。
我們可以直接按照IDEA推薦。
只需將 Queue 更改為 LinkedList。
// Queue<Character> leftover = new LinkedList<>();
LinkedList<Character> leftover = new LinkedList<>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.