ランダムな文字列数が入力されるので
line[]={"とまと","もも","りんご","きゅうり","りんご"};
その最新履歴3つを表示したいです。
表示:りんご、きゅうり、もも
重複した文字列が来た場合、一番上に更新
いろいろ試しましたがremoveで配列外エラーになります
なぜでしょうか
イメージとしてはFIFOです
lang
1import java.util.*; 2 3 4public class Main { 5 public static void main(String[] args) { 6 7 //標準入力を配列に入れる 8 Scanner sc = new Scanner(System.in); 9 String b=sc.nextLine(); 10 int c=Integer.parseInt(b); 11 String line[]=new String[c]; 12 for(int n=0;n<c;n++){ 13 line[n]=sc.nextLine(); 14 } 15 16 List<String> list=new ArrayList<>(); 17 18 for(int n=0;n<c;n++){ 19 int x=list.indexOf(line[n]); 20 //含まれていない場合 21 if(x<0){ 22 list.add(line[n]); 23 } 24 //含まれている場合 25 else if(x>0){ 26 list.remove(x); 27 list.add(0,line[n]); 28 } 29 } 30 System.out.println(list.get(0)); 31 System.out.println(list.get(1)); 32 System.out.println(list.get(2)); 33 } 34}
エラー時のスタックトレースをすべて掲載してください。ideoneで実行したら結果は異なりますがエラーは出ませんでした。→https://ideone.com/k8RNIF
回答3件
あなたの回答
tips
プレビュー