我真的需要自己实施吗?
private void shrinkListTo(ArrayList<Result> list, int newSize) {
for (int i = list.size() - 1; i >= newSize; --i)
list.remove(i);
}
Run Code Online (Sandbox Code Playgroud) 在遍历ArrayList,HashMap和其他集合时,是否有任何性能测试结果可用于比较传统的for循环与Iterator?
或者我为什么要使用Iterator for循环,反之亦然?
是ArrayListjava中的数组还是列表?get操作的时间复杂度是什么,是O(n)或者O(1)?
是的,这是一个古老的话题,但我仍有一些困惑.
在Java中,人们说:
如果我随机访问其元素,ArrayList比LinkedList更快.我认为随机访问意味着"给我第n个元素".为什么ArrayList更快?
LinkedList比ArrayList更快删除.我理解这个.由于需要重新分配内部备份阵列,因此ArrayList较慢.代码说明:
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.remove("b");
System.out.println(list.get(1)); //output "c"
Run Code Online (Sandbox Code Playgroud)LinkedList比ArrayList更快插入.插入意味着什么?如果它意味着将一些元素移回然后将元素放在中间空白点,则ArrayList应该比LinkedList慢.如果插入仅意味着添加(对象)操作,那么这怎么可能很慢?
我想ArrayList按一个属性排序.这是我的代码......
public class FishDB{
public static Object Fish;
public ArrayList<Fish> list = new ArrayList<Fish>();
public class Fish{
String name;
int length;
String LatinName;
//etc.
public Vis (String name) {
this.name = name;
}
}
public FishDB() {
Fish fish;
fish = new Fish("Shark");
fish.length = 200;
fish.LatinName = "Carcharodon Carcharias";
fish = new Fish("Rainbow Trout");
fish.length = 80;
fish.LatinName = "Oncorhynchus Mykiss";
//etc.
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想要ArrayList通过属性对此进行排序,例如latinname在另一个活动中.但我不知道该怎么做.有人知道吗?
我有一个带有自定义对象的ArrayList.我想在这个ArrayList中搜索字符串.
对象的类看起来像这样:
public class Datapoint implements Serializable {
private String stateBased;
private String name;
private String priority;
private String mainNumber;
private String groupadress;
private String dptID;
public Datapoint(){
}
public String getMainNumber() {
return mainNumber;
}
public void setMainNumber(String mainNumber) {
this.mainNumber = mainNumber;
}
public String getName() {
return name;
}
..and so on
Run Code Online (Sandbox Code Playgroud)
我知道如何在ArrayList中搜索字符串但是如何使用我的自定义对象在ArrayList中执行此操作:
ArrayList<String> searchList = new ArrayList<String>();
String search = "a";
int searchListLength = searchList.size();
for (int i = 0; i < searchListLength; i++) {
if …Run Code Online (Sandbox Code Playgroud) 我正在使用java.util.ArrayList,我想删除所有特定元素的出现.
List<String> l = new ArrayList<String>();
l.add("first");
l.add("first");
l.add("second");
l.remove("first");
Run Code Online (Sandbox Code Playgroud)
它只删除第一次出现.但是我希望在l.remove("first");我希望仅使用值"second"省略列表之后删除所有出现的事件.我通过谷歌搜索发现它可以通过创建新列表和调用来实现list.removeAll(newList).但是有可能在不创建新列表的情况下删除所有事件,或者是否有可用的API来实现它?
在Java中,如何ArrayList在初始化之后创建只读(以便没有人可以添加元素,编辑或删除元素)?
如何检查列表是否为空?如果是这样,系统必须给出一条消息,说List是空的.如果没有,系统必须给出一条消息,说明列表不为空.用户可以输入数字,-1以停止该程序.这是我现在的代码,但这不起作用,它总是说'List is not empty'.
import java.util.*;
import javax.swing.JOptionPane;
public class ArrayListEmpty
{
public static void main(String[] args)
{
List<Integer> numbers = new ArrayList<Integer>();
int number;
do {
number = Integer.parseInt(JOptionPane.showInputDialog("Enter a number (-1 to stop)"));
numbers.add(number);
} while (number != -1);
giveList(numbers);
}
public static void giveList(List<Integer> numbers)
{
if (numbers != null)
JOptionPane.showMessageDialog(null, "List isn't empty");
else
JOptionPane.showMessageDialog(null, "List is empty!");
}
}
Run Code Online (Sandbox Code Playgroud) 如何Carnet在ArrayList<Carnet>了解其属性的情况下找到对象codeIsin.
List<Carnet> listCarnet = carnetEJB.findAll();
public class Carnet {
private String codeTitre;
private String nomTitre;
private String codeIsin;
// Setters and getters
}
Run Code Online (Sandbox Code Playgroud)