举个例子:
假设我有班级电话Gun.我有另一个班级电话Bullet.
Class Gun有一个ArrayList Bullet.
迭代通过Arraylist ...而Gun不是这样做:
ArrayList<Gun> gunList = new ArrayList<Gun>();
for (int x=0; x<gunList.size(); x++)
System.out.println(gunList.get(x));
Run Code Online (Sandbox Code Playgroud)
我们可以简单地遍历ArrayList Gun:
for (Gun g: gunList) System.out.println(g);
Run Code Online (Sandbox Code Playgroud)
现在,我想迭代并打印出Bullet我的第三个Gun对象:
for (int x=0; x<gunList.get(2).getBullet().size(); x++) //getBullet is just an accessor method to return the arrayList of Bullet
System.out.println(gunList.get(2).getBullet().get(x));
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:如何使用ArrayList迭代打印输出枪对象列表,而不是使用传统的for-loop?
在Java中,ArrayList并HashMap用作集合.但我无法理解我们应该在哪些情况下使用ArrayList以及使用哪些时间HashMap.两者之间的主要区别是什么?
ArrayList的列表迭代器确实实现了remove方法,但是,我得到以下抛出的异常:
UnsupportedOperationException at java.util.AbstractList.remove(AbstractList.java:144)
Run Code Online (Sandbox Code Playgroud)
通过此代码:
protected void removeZeroLengthStringsFrom(List<String> stringList)
{
ListIterator<String> iter = stringList.listIterator();
String s;
while (iter.hasNext())
{
s = iter.next();
if (s.length() == 0)
{
iter.remove();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?我已经证实List<String>我传入的确是ArrayList<String>.
谢谢!
我有两个列表**ListA<MyData> listA = new ArrayList<MyData>()**和ListB<MyData> listB = new ArrayList<MyData>()都包含类型的对象迈德特和迈德特包含这些变量.
MyData {
String name;
boolean check;
}
Run Code Online (Sandbox Code Playgroud)
ListA和ListB都包含MyData对象,现在我必须比较列表的对象值这里的名称以及检查变量,就像ListA包含这些对象值一样
ListA = ["Ram",true],["Hariom",true],["Shiv",true];
Run Code Online (Sandbox Code Playgroud)
和ListB也包含
ListB = ["Ram",true],["Hariom",true],["Shiv",true];
Run Code Online (Sandbox Code Playgroud)
然后我必须比较列表并返回false,因为两个列表都相同但是如果ListA包含
ListA = ["Ram",true],["Hariom",true],["Shiv",false];
Run Code Online (Sandbox Code Playgroud)
和ListB包含
ListB = ["Ram",true],["Hariom",true],["Shiv",true];
Run Code Online (Sandbox Code Playgroud)
然后我必须比较列表并返回true,因为两个列表都不相同
反之亦然,任何列表值的任何微小变化我都必须返回true. 我必须在这里提到的一件事物可以是任何顺序.
我是Groovy的新手,尽管阅读了很多文章和问题,我仍然不清楚发生了什么.从我到目前为止所理解的,当您在Groovy中创建一个新数组时,底层类型是Java ArrayList.这意味着它应该是可调整大小的,您应该能够将其初始化为空,然后通过add方法动态添加元素,如下所示:
MyType[] list = []
list.add(new MyType(...))
Run Code Online (Sandbox Code Playgroud)
这会编译,但是它在运行时失败:没有方法签名:[LMyType; .add()适用于参数类型:( MyType)值:[MyType @ 383bfa16]
这样做的正确方法或适当类型是什么?
我最近发现ArrayList在Java 中实际上有两种不同的实现(比我猜想的更好......).
所以我想知道为什么Arrays.asList(T... a)需要返回一个无法调整大小的列表?如果他们需要一个不可修改的列表,set(int index, E element)那么为什么要添加方法?
所以我的一般问题是为什么不java.util.ArrayList从Arrays.asList(T... a)方法中返回?
您还可以通过java.util.Arrays.ArrayList实施获得什么?
我怎么能这样做?
我有一个arraylist,有浮动元素. (Arraylist <Float>)
(float[]) Floats_arraylist.toArray()
Run Code Online (Sandbox Code Playgroud)
它不起作用.
无法从Object []转换为float []
哪种类型更好用,如何选择正确的类型(内存使用,执行...)?
如何创建ArrayList带整数和字符串输入类型?如果我创建一个:
List<Integer> sections = new ArrayList <Integer>();
Run Code Online (Sandbox Code Playgroud)
这将是一种Integer类型ArrayList.如果我创建一个:
List<String> sections = new ArrayList <String>();
Run Code Online (Sandbox Code Playgroud)
这将是String类型.如何创建一个ArrayList可以采用整数和字符串输入类型的?谢谢.
如果我有一个String的ArrayList形成Java中的类的一部分,如下所示:
private ArrayList<String> rssFeedURLs;
如果我想在包含上述的ArrayList类的使用方法,使用ArrayList包含检查,如果一个字符串包含在此ArrayList,我相信我应该能够做到这一点,如下所示:
if (this.rssFeedURLs.contains(rssFeedURL)) {
Run Code Online (Sandbox Code Playgroud)
其中rssFeedURL是一个String.
我是对还是错?