我知道您可以在实例化期间初始化数组,如下所示:
String[] names = new String[] {"Ryan", "Julie", "Bob"};
Run Code Online (Sandbox Code Playgroud)
有没有办法用ArrayList做同样的事情?或者我必须单独添加内容array.add()吗?
我有两个arraylist filelist并且imgList彼此相关,例如与"e1.jpg"相关的"H1.txt".如何自动随机名单imgList根据随机化fileList?就像在Excel中一样,如果我们对某个列进行排序,另一列会自动跟随吗?
String [] file = {"H1.txt","H2.txt","H3.txt","M4.txt","M5.txt","M6.txt"};
ArrayList<String> fileList = new ArrayList<String>(Arrays.asList(file));
String [] img = {"e1.jpg","e2.jpg","e3.jpg","e4.jpg","e5.jpg","e6.jpg"};
ArrayList<String> imgList = new ArrayList<String>(Arrays.asList(img));
//randomized files
Collections.shuffle(fileList);
Run Code Online (Sandbox Code Playgroud)
随机化后的输出例如:
fileList = {"M4.txt","M6.txt","H3.txt","M5.txt","H2.txt","H1.txt"};
Run Code Online (Sandbox Code Playgroud)
预期输出:
imgList = {"e4.jpg","e6.jpg","e3.jpg","e5.jpg","e2.jpg","e1.jpg"};
Run Code Online (Sandbox Code Playgroud) 您可以通过执行设置ArrayList的初始大小
ArrayList<Integer> arr=new ArrayList<Integer>(10);
Run Code Online (Sandbox Code Playgroud)
但是,你做不到
arr.add(5, 10);
Run Code Online (Sandbox Code Playgroud)
因为它会导致越界异常.
如果您无法访问分配的空间,设置初始大小有什么用?
add函数定义为add(int index, Object element)我没有添加到索引10.
我正在阅读Java的ArrayList源代码,并注意到if语句中的一些比较.
在Java 7中,该方法grow(int)使用
if (newCapacity - minCapacity < 0)
newCapacity = minCapacity;
Run Code Online (Sandbox Code Playgroud)
在Java 6中,grow不存在.ensureCapacity(int)然而,该方法使用
if (newCapacity < minCapacity)
newCapacity = minCapacity;
Run Code Online (Sandbox Code Playgroud)
改变背后的原因是什么?这是性能问题还是风格?
我可以想象,与零进行比较会更快,但执行完全减法只是为了检查它是否为负似乎对我来说有点矫枉过正.同样在字节码方面,这将涉及两个指令(ISUB和IF_ICMPGE)而不是一个(IFGE).
考虑到Iterator<Element>,我们怎么可以转换Iterator到ArrayList<Element>(或List<Element>)的最好,最快的可能方式,这样我们就可以使用ArrayList它,例如的操作get(index),add(element)等等.
我有一个名为Fruit的课程.我正在创建此类的列表并在列表中添加每个水果.我想根据水果名称的顺序对此列表进行排序.
public class Fruit{
private String fruitName;
private String fruitDesc;
private int quantity;
public String getFruitName() {
return fruitName;
}
public void setFruitName(String fruitName) {
this.fruitName = fruitName;
}
public String getFruitDesc() {
return fruitDesc;
}
public void setFruitDesc(String fruitDesc) {
this.fruitDesc = fruitDesc;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用for循环创建它的列表
List<Fruit> fruits= new ArrayList<Fruit>();
Fruit fruit;
for(int i=0;i<100;i++)
{
fruit = new fruit();
fruit.setname(...);
fruits.add(fruit);
}
Run Code Online (Sandbox Code Playgroud)
我需要使用列表中每个对象的水果名称对此arrayList进行排序 …
我有一个ArrayList l1大小10.我分配l1给新列表引用类型l2.威尔l1和l2指向同一个ArrayList对象吗?或者是ArrayList分配给的对象的副本l2?
使用l2引用时,如果我更新列表对象,它也会反映l1引用类型中的更改.
例如:
List<Integer> l1 = new ArrayList<Integer>();
for (int i = 1; i <= 10; i++) {
l1.add(i);
}
List l2 = l1;
l2.clear();
Run Code Online (Sandbox Code Playgroud)
除了创建2个列表对象以及对从旧到新的集合进行复制之外,没有其他方法可以将列表对象的副本分配给新的引用变量吗?
我尝试将对象添加到List<String>实例,但它会抛出一个UnsupportedOperationException.有谁知道为什么?
我的Java代码:
String[] membersArray = request.getParameterValues('members');
List<String> membersList = Arrays.asList(membersArray);
for (String member : membersList) {
Person person = Dao.findByName(member);
List<String> seeAlso;
seeAlso = person.getSeeAlso();
if (!seeAlso.contains(groupDn)){
seeAlso.add(groupDn);
person.setSeeAlso(seeAlso);
}
}
Run Code Online (Sandbox Code Playgroud)
错误消息:
java.lang.UnsupportedOperationException
java.util.AbstractList.add(Unknown Source)
java.util.AbstractList.add(Unknown Source)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
我需要帮助这个java.我创建了一个灯泡ArrayList,我试图用另一个灯泡替换特定索引的灯泡.因此,使用以下标题,我该如何处理?
public void replaceBulb(int index, Bulbs theBulb) {
}
Run Code Online (Sandbox Code Playgroud) Java中的ArrayList或List声明质疑并回答了如何声明一个空,ArrayList但是如何声明一个带有值的ArrayList?
我尝试了以下但它返回语法错误:
import java.io.IOException;
import java.util.ArrayList;
public class test {
public static void main(String[] args) throws IOException {
ArrayList<String> x = new ArrayList<String>();
x = ['xyz', 'abc'];
}
}
Run Code Online (Sandbox Code Playgroud) arraylist ×10
java ×10
list ×3
collections ×2
arrays ×1
declare ×1
exception ×1
if-statement ×1
iterator ×1
sorting ×1