これは重複している可能性がありますが、このエラーが表示されることはありません。ArrayListの削除メソッドが機能していませんか?
私はArrayList
から整数を削除するためにremove()
メソッドを使用しようとしていますが、それは私にjava.lang.UnsupportedOperationException
を与えています。 removeメソッドは、私の理解のためにint
またはInteger、またはArrayList
の値をとる必要がありますが、これらは動作しておらず、同じエラーが発生します。
また、index
として「深さ」を使用しようとしました。これは、削除するindex
です。
import java.util.*;
public class EP{
public static List<Integer> items = Arrays.asList(12, 13, 48, 42, 38, 2827, 827, 828, 420);
public static void main(String[]args){
System.out.println("Exam List");
for(Integer i: items){
System.out.println(i);
}
Scanner scan = new Scanner(System.in);
System.out.println("Enter depth");
int depth = scan.nextInt();
System.out.println("Enter value");
int value = scan.nextInt();
System.out.println(mark(depth, value));
}
public static int mark(int depth, int value){
int ret = -1; //This ensures -1 is returned if it cannot find it at the specified place
for(Integer i: items){
if(items.get(depth) == (Integer)value){ //This assummes depth starts at 0
ret = value;
items.remove(items.get(depth)); // has UnsupportedOperationException
}
}
System.out.println("Updated Exam List");
for(Integer j: items){
System.out.println(j);
}
return ret;
}
}
コードを書式設定してください。これは完全に判読不能です。 –
Arrays.asList()はArrayListを返しません。 Arrays.asList()によって返されたリスト実装を変更できるかどうかを知りたい。シンプルなforループを使用して反復すること、強化forループを使用して反復すること、およびListのイテレータを使用して反復することの違いを参照してください。また、IteratorやEnhanced for Loopを使用して反復処理をしているときやそうでないときにListを変更できるときも参照してください。あなたがこれらを勉強すると、あなたのコードでやっていることすべてと、あなたが得ている例外も明らかになります。あなたのケースでは反復処理が例外の理由ではないのですが、まだ 'Array'から' ArrayList'を作成する方法については、 –
の投稿を参考にしてください(http://stackoverflow.com/a/158269/5394855)。 –