我想在数组列表选择位置删除项目
我的代码是
List<String> historylist = Arrays.asList(history);
if (historylist.size()>=3){
System.out.print("*************************************************");
Log.i(MyContants.StoredHistory_TAG,"StoredHistory size========="+ String.valueOf(historylist.size()));
String removePosition=historylist.get(2);
historylist.remove(removePosition);
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了一个Exception UnsupportedOperationException
错误
12-20 09:16:27.680: I/StoredHistory Class(5715): StoredHistory size=========3
12-20 09:16:27.680: D/AndroidRuntime(5715): Shutting down VM
12-20 09:16:27.684: W/dalvikvm(5715): threadid=1: thread exiting with uncaught exception (group=0x4001d7d0)
12-20 09:16:27.688: E/AndroidRuntime(5715): FATAL EXCEPTION: main
12-20 09:16:27.688: E/AndroidRuntime(5715): java.lang.RuntimeException: Unable to start activity ComponentInfo{****PACKAGE NAME*****}: java.lang.UnsupportedOperationException
12-20 09:16:27.688: E/AndroidRuntime(5715): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
12-20 09:16:27.688: E/AndroidRuntime(5715): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
12-20 09:16:27.688: E/AndroidRuntime(5715): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
12-20 09:16:27.688: E/AndroidRuntime(5715): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
12-20 09:16:27.688: …Run Code Online (Sandbox Code Playgroud) public class ListMerge
{
public static void main( String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println ("Input length of arraylist 1:");
int n = input.nextInt();
ArrayList x = new ArrayList();
ArrayList y = new ArrayList();
for (int i = 0; i < n; i++)
{
System.out.println ("Input x[ " + i +"] :" );
x.add(new Integer(i));
}
System.out.println ("Input length of arraylist 2:");
int m = input.nextInt();
for (int i = 0; i < m; i++)
{
System.out.println ("Input …Run Code Online (Sandbox Code Playgroud) 当我调用List.remove(index)或list.remove(element)时,它会引发java.lang.UnsupportedOperationException.唯一相关的错误代码是这样的:
17:08:10 [SEVERE] at java.util.AbstractList.remove(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
这是一个例子:
String line = "cmd /say This is a test";
String[] segments = line.split(" ");
String cmd = segments[0];
List rest = Arrays.asList(segments);
rest.remove(0); // This line raises the exception
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会这样?在我的执行代码中,我检查了索引0处的元素被删除.
当我从列表中删除项目时,我得到不受支持的操作异常.
new AlertDialog.Builder(getActivity())
.setMessage(result.getString("Message"))
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
miPaymentModel.remove(index);
})
.show();
Run Code Online (Sandbox Code Playgroud)
}
堆栈跟踪就在这里
01-11 16:42:37.610: E/AndroidRuntime(25930): FATAL EXCEPTION: main
01-11 16:42:37.610: E/AndroidRuntime(25930): java.lang.UnsupportedOperationException
01-11 16:42:37.610: E/AndroidRuntime(25930): at java.util.AbstractList.remove(AbstractList.java:638)
01-11 16:42:37.610: E/AndroidRuntime(25930): at com.paksoft.people.Fragment.MiPaymentFragment$DeleteCardAccount$1.onClick(MiPaymentFragment.java:395)
01-11 16:42:37.610: E/AndroidRuntime(25930): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
01-11 16:42:37.610: E/AndroidRuntime(25930): at android.os.Handler.dispatchMessage(Handler.java:99)
01-11 16:42:37.610: E/AndroidRuntime(25930): at android.os.Looper.loop(Looper.java:137)
01-11 16:42:37.610: E/AndroidRuntime(25930): at android.app.ActivityThread.main(ActivityThread.java:4499)
01-11 16:42:37.610: E/AndroidRuntime(25930): at java.lang.reflect.Method.invokeNative(Native Method)
01-11 16:42:37.610: E/AndroidRuntime(25930): at java.lang.reflect.Method.invoke(Method.java:511)
01-11 16:42:37.610: E/AndroidRuntime(25930): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
01-11 16:42:37.610: E/AndroidRuntime(25930): …Run Code Online (Sandbox Code Playgroud) 我不太明白我可以在哪里抛出这个异常.
例如,我正在实现Future<T>接口,并且不希望任何人调用该方法:
那么,我可以扔掉UnsupportedOperationException吗?
public T get(long timeout, TimeUnit unit){
throw new UnsupportedOperationException();
}
Run Code Online (Sandbox Code Playgroud)
事情是该方法的规范没有说什么关于抛出异常.反过来,例外
抛出以指示不支持所请求的操作.
Class UnsupportedOperationException
我的意思是,如果您不希望它被调用或者它可能被认为是不正确的,因为并非所有方法都已实现,它是否常见?在我的具体情况下,我认为调用该方法没有意义......
我正在尝试从地图中读取列表并尝试将数据添加到列表中。我收到 java.lang.UnsupportedOperationException。请你让我知道如何解决这个问题
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
public class ListOperation {
public static void main(String[] args){
Map<String,List<Item>> packageMap = new HashMap<String,List<Item>>();
Item item = new Item();
item.billingIdentifier = "pkg1";
item.name="pkg1";
Item item1 = new Item();
item1.billingIdentifier = "pkg2";
item1.name="pkg2";
Item item2 = new Item();
item2.billingIdentifier = "pkg3";
item2.name="pkg3";
ItemList itemList = new ItemList();
itemList.setItem(item);
ItemList itemList1 = new ItemList();
itemList1.setItem(item1);
ItemList itemList2 = new ItemList();
itemList2.setItem(item2);
List<ItemList> itemLists = new ArrayList<ItemList>();
itemLists.add(itemList);
itemLists.add(itemList1); …Run Code Online (Sandbox Code Playgroud) 我的目的是对 进行浅层克隆,ArrayList但在此之前我在修改列表时遇到问题。
在列表中添加另一个元素
UnsupportedOrderException
Run Code Online (Sandbox Code Playgroud)
为什么?
UnsupportedOrderException
Run Code Online (Sandbox Code Playgroud) 我想在Java中测试一些关于泛型的东西,所以我用泛型编写了一个方法,它接受一个列表并删除所有其他元素.我写了这个方法,但它给出了UnsupportedOperationException错误.这里有什么问题?
Integer[] strArray = new Integer[] {1, 2, 3, 4, 5};
List<Integer> numbers = Arrays.asList(strArray);
removeOdd(numbers);
for (Object o : numbers){
System.out.println( o );
}
}
public static <T> void removeOdd ( List<T> list){
Iterator<T> itr = list.iterator();
int i = 0;
while(itr.hasNext())
{
itr.next();
i++;
if(i % 2 ==1){
itr.remove();
}
}
Run Code Online (Sandbox Code Playgroud) 在运行以下代码时,UnsupportedOperationException会抛出.remove()方法.
通过此代码:
List list = Array.asList(array) ;
list.remove(0);
Run Code Online (Sandbox Code Playgroud) 我尝试使用lambda表达式从列表中删除项目,但removeIf生成异常,为什么?
在这个Orlacle视频jdk8 8 MOOC介绍removeif与列表而不是arraylist.这样对吗 ?https://youtu.be/olKF7VpJMfg?list=PLMod1hYiIvSZL1xclvHcsV2dMiminf19x&t=137
public static void main(String[] args){
List<String> parole = Arrays.asList("Lambda ", "expressions ", "are ", "cool ");
Predicate <String> findAre= s->"are ".equals(s);
parole.removeIf(findAre);
parole.forEach( System.out::println);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试从列表中删除元素时removeIf(),它正在抛出UnsupportedOperationException
public class T {
public static void main(String[] args) {
String[] arr = new String[] { "1", "2", "3" };
List<String> stringList = Arrays.asList(arr);
stringList.removeIf((String string) -> string.equals("2"));
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我理解为什么会发生这种情况,我该如何纠正这个问题?
在java中我有这个功能:
public List<String> seperatekeys(String text) {
String[] keys = text.split("and");
List<String> words = Arrays.asList(keys);
ListIterator<String> iter = words.listIterator();
while (iter.hasNext()) {
String currentWord = iter.next().trim();
if (currentWord.equals("")) {
iter.remove();
} else {
iter.set(currentWord);
}
}
return words;
}
Run Code Online (Sandbox Code Playgroud)
但是当我执行remove()时,它会崩溃说不支持的操作错误.
谁知道怎么修它?
谢谢
我有两个逗号分隔值的字符串,比如一个数字从1到10,另一个有素数.我想要
从数字中删除素数
.
这是我的代码片段:
String numbers = "1,2,3,4,5,6,7,8,9,10";
String prime = "2,3,5,7";
List<String> numList = Arrays.asList(numbers.split(","));
numList.removeAll(Arrays.asList(prime.split(",")));
Run Code Online (Sandbox Code Playgroud)
我收到了UnsupportedOperationException.任何帮助,将不胜感激.