int[] alist = new int [3];
alist.add("apple");
alist.add("banana");
alist.add("orange");
Run Code Online (Sandbox Code Playgroud)
假设我想使用ArrayList中的第二项.为了获得以下输出,编码是什么?
输出:
香蕉
我在我的视图功能中有这个:
emit([doc.address.country,doc.address.state, doc.address.city], doc);
Run Code Online (Sandbox Code Playgroud)
当我查询搜索时,我需要填充数组的所有3个元素,例如:
?key=["US","NY","New York"]
Run Code Online (Sandbox Code Playgroud)
这将产生我的记录,但举例来说,我只想返回美国的所有内容,例如:
?key=["US"]
Run Code Online (Sandbox Code Playgroud)
或者在美国和州......
?key=["US","NY"]
Run Code Online (Sandbox Code Playgroud)
或者...让我们说也许我只想要来自纽约的所有记录...(我知道以下不起作用)
?key=["","NY"]
Run Code Online (Sandbox Code Playgroud)
如果你想将数组中的一个元素留空,我真的不知道如何搜索?
考虑以下示例代码:
List<String> myList = new ArrayList<String>(7);
myList.add(5, "Hello");
myList.removeAll(Collections.singleton(null));
System.out.println(myList.size() + " objects:" );
for (String s : myList) {
System.out.println("\t" + s);
}
Run Code Online (Sandbox Code Playgroud)
myList 初始化初始容量为7,然后下一行尝试在位置5添加字符串"Hello".这会抛出IndexOutOfBoundsException:
线程"main"中的异常java.lang.IndexOutOfBoundsException:索引:5,大小:0
我查看了关于"初始容量"对于ArrayList意味着什么的这个问题.据我所知,这个特殊的构造函数为7个String元素分配了空间,如果我们尝试在列表中添加8个元素,则必须分配更多的空间.
我不明白的是为什么它不会创建大小为7的"空"列表,每个索引都有空值,类似于我们声明的情况String[] myArray = new String[7].我记得我知道ArrayList是Java的动态数组实现,所以我期待类似的行为.如果我在申报时实际上没有分配7个字符串的空间,new ArrayList<String>(7)实际发生了什么?
我正在重构我编写的一些旧代码,并且我在这段代码上做了标记:
List<OcmImageData> fullImagePool = new ArrayList<>();
if (CollectionUtils.isNotEmpty(style.getTestMH())) {
fullImagePool.addAll(style.getTestMH());
}
if (CollectionUtils.isNotEmpty(style.getTrousers())) {
fullImagePool.addAll(style.getTrousers());
}
if (CollectionUtils.isNotEmpty(style.getDetailRevers())) {
fullImagePool.addAll(style.getDetailRevers());
}
if (CollectionUtils.isNotEmpty(style.getDetailCuffs())) {
fullImagePool.addAll(style.getDetailCuffs());
}
if (CollectionUtils.isNotEmpty(style.getDetailInner())) {
fullImagePool.addAll(style.getDetailInner());
}
if (CollectionUtils.isNotEmpty(style.getDetailMaterial())) {
fullImagePool.addAll(style.getDetailMaterial());
}
if (CollectionUtils.isNotEmpty(style.getComposing())) {
fullImagePool.addAll(style.getComposing());
}
...
Run Code Online (Sandbox Code Playgroud)
所以基本上我需要创建一个ArrayList,其中包含这里引用的所有列表,因为它们可以为null(它们是从一个封闭的源代码框架中提取出来的数据库,不幸的是如果他没有找到任何东西它就是null),我需要每次检查集合是否为null时将它们添加到此池中,这看起来很奇怪.
是否有库或Collection-Framework实用程序类,使我能够在不执行空安全检查的情况下将集合添加到另一个集合中?
假设我们有一个ArrayList myArray.我想通过调用它的函数来修改一个对象.如果我这样做,原始对象是否会被更改?
myArray.get(0).myModyfyingFunction();
Run Code Online (Sandbox Code Playgroud)
为了进一步澄清 - 我担心get()实际上是返回对原始对象的引用还是只返回原始对象的副本.
我有两个数组列表
ArrayList one = {A, B, C, D, E}
ArrayList two = {B, D, F, G}
Run Code Online (Sandbox Code Playgroud)
我想有我最后的ArrayList这将对所有社会的因素,哪些是只有两个,而不是在一个元素.
所以ArrayList final = {A,B,C,D,E,F,G}.
我怎样才能做到这一点?
我试图将自定义类的ArrayList转换为JsonArray.以下是我的代码.它执行正常,但一些JsonArray元素为零,即使它们是ArrayList中的数字.我试图将它们打印出来.就像ArrayList中的customerOne年龄是35但在JsonArray中它是0.可能有什么不对?
ArrayList<Customer> customerList = CustomerDB.selectAll();
Gson gson = new Gson();
JsonElement element =
gson.toJsonTree(customerList , new TypeToken<List<Customer>>() {}.getType());
JsonArray jsonArray = element.getAsJsonArray();
Run Code Online (Sandbox Code Playgroud) 我使用下面的代码.两者都在我的应用程序中工作正常.
情况1.
List<String> coreModules =
new ArrayList<String>(Arrays.asList(
"TOOLBAR_TO_DO_LIST",
"TOOLBAR_PROPERTY",
"TOOLBAR_PEOPLE",
"TOOLBAR_INSURANCE",
"TOOLBAR_BATCH",
"TOOLBAR_INFORMATION_REFERENCE",
"TOOLBAR_LR_PROPERTY",
"TOOLBAR_CASE_FOLDER",
"TOOLBAR_INSPECTION_RESULT",
"TOOLBAR_MY_OFFICE"));
Run Code Online (Sandbox Code Playgroud)
案例2.
List<String> coreModules =
Arrays.asList(
"TOOLBAR_TO_DO_LIST",
"TOOLBAR_PROPERTY",
"TOOLBAR_PEOPLE",
"TOOLBAR_INSURANCE",
"TOOLBAR_BATCH",
"TOOLBAR_INFORMATION_REFERENCE",
"TOOLBAR_LR_PROPERTY",
"TOOLBAR_CASE_FOLDER",
"TOOLBAR_INSPECTION_RESULT",
"TOOLBAR_MY_OFFICE");
Run Code Online (Sandbox Code Playgroud)
但我有一些问题:
以下行给出了错误:
Incompatible Types.
List<List<Integer>> output = new ArrayList<ArrayList<Integer>>();
Run Code Online (Sandbox Code Playgroud)
是什么原因?
编辑
我理解如果我将我的第二个ArrayList更改为List,它不会给我错误.我想知道错误的原因.谢谢