How to remove and set from List<String> in java? -


in java have function:

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; } 

but when remove(), crashes saying unsupportedoperationerror.

anyone know how fix it?

thanks

the issue arrays#aslist() returns arraylist implementation inherits remove() abstractlist. implementation of remove() in abstractlist this:

public e remove(int index) {     throw new unsupportedoperationexception(); } 

and because iterator uses list's iterator perform remove() method, end exception.

you have few solutions here. can either pass result of arrays#aslist() arraylist constructor:

list<string> words = new arraylist<>(arrays.aslist(keys)); 

now, can iterate on resulting list , remove elements want.

or, asmadprogrammer stated, can take opposite approach , iterate on array , add elements want keep:

list<string> words = new arraylist<>(); (string s : keys) {     string currentword = s.trim();     if (!currentword.equals("")) {         words.add(currentword);     } } 

Comments

Popular posts from this blog

commonjs - How to write a typescript definition file for a node module that exports a function? -

openid - Okta: Failed to get authorization code through API call -

ios - Change Storyboard View using Seague -