我正在创建一个程序,允许用户与输入的文件进行交互.其中一个选项是显示文件.下面,我首先通过创建由线组成的arraylists,然后是由空格分隔的字符串分隔的内部arraylist,将文件存储到arraylist中.
Scanner sc = new Scanner(fileName);
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] words = {};
words = line.split(" ");
ArrayList<String> lineArray = new ArrayList<String>();
for (int i = 0; i < words.length; i++) {
lineArray.add(words[i]);
}
fileByLine.add(lineArray);
}
sc.close();
Run Code Online (Sandbox Code Playgroud)
我正在尝试打印arraylist的内容,称为fileByLine,因为它们出现在文件中,但我不知道如何.有什么建议吗?
case '1':
for(int i = 0; i < fileByLine.size(); i++){
for(int j = 0; j < fileByLine.[i].size(); j++){
System.out.print(fileByLine[i][j]);
} System.out.println("");
} break;
Run Code Online (Sandbox Code Playgroud) 我需要从ArrayList中删除一些元素.我用的removeAll(List)方法.但问题是它也删除了重复项.我如何保留重复项?
考虑下面的例子 -
我有一个 List a1 = {2, 3, 4, 5, 2, 2, 3}
现在我有了另一个
List a2 = {2, 3}
Run Code Online (Sandbox Code Playgroud)
当我使用时,a1.removeAll(a2)我将a1 = {4, 5}
删除所有2和3的实例.
我需要的是a1 = {4, 5, 2, 2, 3}
a2中存在的实例数应该从a1中删除.
我怎样才能做到这一点?
我正在研究一种方法,如果密码匹配,应该将客人检查到房间.该方法还应返回该房间.
public Room checkIn(String password, String guestName) {
assert (guestName != null);
if (this.password.testWord(password) && roomList.stream().allMatch(r -> r.getGuest().getName() != guestName)) {
roomList.forEach(r -> {
if (r.getGuest() == null) {
new Guest(guestName).checkin(r);
return r;
}
});
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
Eclipse给出了一个关于在forEach()方法内返回的错误,因为forEach()不应返回任何内容.我正试图让checkIn()方法返回房间.有什么方法可以做到这一点吗?
我在我的代码中使用list.remove()方法.我试图将返回的值作为参数传递给某个函数作为字符串,这样它既可以返回也可以删除对象.当我在for循环中打印它时,它只显示两个元素,它应该打印4.为什么会这样?
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
for(int i=0;i<list.size();i++) {
Log.d("Removed+++++++++++","++++"+list.remove(i));
// queue.remove();
}
Run Code Online (Sandbox Code Playgroud)
d /移除+++++++++++:++++一
d /删除+++++++++++:++++Ç
为什么它只打印a和c时应打印a,b,c,d?
以下代码块的结果是什么?
ArrayList<Integer> myList = new ArrayList<Integer>();
for (int i = 0; i < myList.size(); i++) {
myList.remove(i);
}
Run Code Online (Sandbox Code Playgroud)
提供答案是因为循环永远不会运行.
但是对于[-1,3,28,17,9,33]的输入,我得到[3,17,33]作为输出.这是什么意思?
用于过滤列表RxJava2.不知何故让它发挥作用.但问题是,它在回调中仅返回List中的一个项目Consumer(大小始终为1)
这是代码:
Observable.fromIterable(arraylist)
.filter(new Predicate<BasicListModel>() {
@Override
public boolean test(BasicListModel model) throws Exception {
return true; //returning true for all items in filter
}
})
.toList()
.observeOn(Schedulers.computation())
.subscribe(new Consumer<List<BasicListModel>>() {
@Override
public void accept(List<BasicListModel> models) throws Exception {
Log.i("TAG"," size:"+models.size());
}
});
Run Code Online (Sandbox Code Playgroud)
我是RxJAva1或RxJava2的新手.
在我正在上课的练习考试中有以下问题:
对或错.初始化ArrayList后,无法更改ArrayList的大小.
立即看问题,我认为答案是错误的.如果初始化ArrayList,则可以继续向其添加无限元素,ArrayList将自动调整大小.但是,答案密钥声称答案是正确的.为什么会这样?幕后是否有一些我不理解的事情?
编辑:讲师告诉我,答案键实际上是一个错误.谢谢你的帮助.
我有一个for循环,旨在为arraylist添加6个值.
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = list.size(); i < list.size() + 6; i++){
list.add(2 * i);
}
Run Code Online (Sandbox Code Playgroud)
现在这产生了一个无限循环.我的问题是我是否可以声明一个在整个for循环中持续存在的变量,那不是i或者我必须在循环之前声明它吗?如果我可以将它嵌入for循环中,我会把它放在哪里?
当我运行这个时,我得到了一个java.util.ConcurrentModificationException尽管我使用iterator.remove();
显然我在循环中添加了数字6.这是否发生是因为迭代器"不知道"它在那里并且无论如何都要修复它?
public static void main(String args[]){
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
for(Iterator<String> it = list.iterator();it.hasNext();){
String value = it.next();
if(value.equals("4")) {
it.remove();
list.add("6");
}
System.out.println("List Value:"+value);
}
}
Run Code Online (Sandbox Code Playgroud) 我试图在Kotlin中将一个复制ArrayList到另一个ArrayList
第1名ArrayList:
private var leadList1: ArrayList<Lead> = ArrayList()
Run Code Online (Sandbox Code Playgroud)
第二名ArrayList:
val leadList2: ArrayList<Lead?>?
Run Code Online (Sandbox Code Playgroud)
我试着用addAll().leadList1.addAll(leadList2)
但它不起作用.
错误显示:
Required: Collection<Lead>
Found: kotlin.collections.ArrayList<Lead?>?
Run Code Online (Sandbox Code Playgroud)