ArrayList templist =new ArrayList(10): for (int {=0: i<templist: [++) templist [i]=“test”
时间: 2023-06-11 08:05:23 浏览: 85
请问这段代码中有什么错误?
根据您提供的代码,存在两个错误:
1. for循环条件中应该是 i < templist.size() 而不是 i < templist
2. 在 Java 中,数组或 ArrayList 中的元素是通过索引访问的,因此应该是 templist.get(i)="test" 而不是 templist[i]="test"。
正确的代码应该是:
ArrayList templist = new ArrayList(10);
for (int i=0; i<templist.size(); i++) {
templist.set(i, "test");
}
相关问题
在创建List<String> tempList = new ArrayList<>(); 时报错<>is not allowed for source level below 1.7
如果你在创建 `List<String>` 时收到错误消息 `<> is not allowed for source level below 1.7`,这意味着你的 Java 编译器的源代码级别低于 1.7。
Java 1.7 引入了钻石操作符(Diamond Operator),它允许在实例化泛型类型时省略类型参数,例如 `List<String> tempList = new ArrayList<>();`。这样可以使代码更简洁和易读。
为了解决这个问题,你可以尝试以下两种方法之一:
1. 升级你的 Java 编译器或 Java SDK 到版本 1.7 或更高。这样你就可以使用钻石操作符。
2. 显式指定类型参数,如 `List<String> tempList = new ArrayList<String>();`。这样可以确保代码在低版本的 Java 编译器中也能正常编译。
选择哪种方法取决于你的项目要求和开发环境。如果可能的话,推荐升级到较新的 Java 版本以获得更多语言功能和改进。
public void onClick(View v) { String key = inflate.messageEdit.getText().toString(); if (TextUtils.isEmpty(key)){ homeAdapter.clear(); homeAdapter.addAll(goodsTbList); return; } List<GoodsTb> tempList = new ArrayList<>(); for (int i = 0; i < goodsTbList.size(); i++) { if (goodsTbList.get(i).getBook_names().contains(key)){ tempList.add(goodsTbList.get(i)); } }
这段代码是一个点击事件的监听器,在用户点击某个控件时执行。当用户点击时,它会获取一个输入框中的字符串,并判断是否为空。如果字符串为空,则清空 `homeAdapter` 中的数据,然后将 `goodsTbList` 中的所有数据添加到 `homeAdapter` 中。如果字符串不为空,则遍历 `goodsTbList` 列表,查找其中 `book_names` 字段包含该字符串的所有数据,然后将它们添加到 `tempList` 中。最后将 `tempList` 中的数据添加到 `homeAdapter` 中。这段代码的作用是根据用户输入的关键字,动态过滤出符合条件的数据并显示在列表中。
阅读全文