我是一个相对较新的Java程序员,我从diffList中删除了多个元素.理想情况下,我想做这样的事情:
ArrayList ar1 = new ArrayList();
ar1.add(...)
ar1.add(...)
ar1.add(...)
ar1.add(...)
for (int i = 0; i < 2; i++){
ar1.remove(i);
}
Run Code Online (Sandbox Code Playgroud)
我认为迭代器可能会有所帮助,但我找不到一个与我正在尝试的内容相近的示例.任何帮助,将不胜感激.谢谢.
我该如何翻译这个Java代码:
private List<MPoint> classes = new ArrayList<MPoint>(); // MPoint is my own class
Run Code Online (Sandbox Code Playgroud)
到C#?最终关键字在Java中意味着什么?C#中有什么类似的东西?我是C#和Java的新手,我需要帮助:)
我很难找到Java上几个列表的交集.我正在做的是:我得到(让我们说)3个整数列表:
清单1:[2,2,2,2,5,5]
清单2:[2,2,103]
清单3:[2,431]
我正在使用每个剩余列表将retainAll应用于第一个:
list1.retainAll(list2);
list1.retainAll(list3);
Run Code Online (Sandbox Code Playgroud)
我得到了这个结果:
list1:[2,2,2,2]
但我希望得到这个:
list1:[2]
...因为所有列表共享的唯一元素是一个 2而不是四个 2.
我知道这可能是retainAll函数的预期行为,但我需要得到上面提到的结果.
有帮助吗?
编辑: 使用HashSet禁止重复也不会有效.在这种情况下,例如:
清单1:[2,2,2,2,5,5]
清单2:[2,2,103]
清单3:[2,2,2,431]
我需要得到一个结果:
清单1:[2,2](因为所有列表至少有一对2)
代替
清单1:[2]
我正在阅读之间的不同之处ArrayList并LinkedList指出何时使用LinkedList而不是ArrayList?.我开发了一个小的示例applcation来测试一个主要的优点LinkedList但是我获得的结果没有证实,这LinkedList超过ArrayList了操作的性能:
ListIterator.add(E element)
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
public static void main(String[] args) {
int number = 100000;
long startTime1 = System.currentTimeMillis();
fillLinkedList(number);
long stopTime1 = System.currentTimeMillis();
long startTime2 = System.currentTimeMillis();
fillArrayList(number);
long stopTime2 = System.currentTimeMillis();
System.out.println(" LinkedList needed: "+ (stopTime1 - startTime1));
System.out.println(" ArrayList needed: "+ (stopTime2 - startTime2));
}
public static void fillLinkedList(int number){
LinkedList<Integer> list = new LinkedList<Integer>();
ListIterator<Integer> it = list.listIterator();
int i = 0;
while(i++<number){
it.add(i);
} …Run Code Online (Sandbox Code Playgroud) 我有一个名为User的抽象类,用户可以创建为学生类型或教师类型.我已经创建了一个用户(学生和教师)的ArrayList,我想要做的是调用一个方法示例,具体取决于当前对象是什么的实例:
for (User user : listOfUsers) {
String name = user.getName();
if (user instanceof Student) {
// call getGrade();
} else { // it is an instance of a Teacher
// call getSubject();
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是因为它是User对象的ArrayList,它无法获取Student类型方法,例如getGrade().但是,因为我能够确定当前用户的实例是什么,所以我很好奇是否仍然可以根据用户的类型调用特定方法.
这是可能的,还是我必须将用户类型分成单独的列表?
请尽快回复,非常感谢.
我想拆分下面提到的字符串并将其保存在两个单独的arraylist中,如州和城市
public class RoundValue {
public static void main(String args[]) {
String firstset = null;
String city = "Tamilnadu;chennai-madurai-salem::Kerala;cochin-tiruvandrum-calicut";
ArrayList<String> mState = new ArrayList<String>();
ArrayList<String> mCity = new ArrayList<String>();
HashMap<String, List<String>> hashsplit = new HashMap<String, List<String>>();
List<String> splitword1 = Arrays.asList(city.split("::"));
if (splitword1.size() > 0) {
for (int i = 0; i < splitword1.size(); i++) {
firstset = splitword1.get(i);
List<String> firststate = Arrays.asList(firstset.split("-"));
if (firststate.size() > 0) {
for (int j = 0; j < firststate.size(); j++) {
String firstcity = …Run Code Online (Sandbox Code Playgroud) 我上课了
public class LocationDistances {
String locs;
double distances;
}
Run Code Online (Sandbox Code Playgroud)
和一个由另一个类中的LocationDistances对象组成的ArrayList
ArrayList<LocationDistances> locsDis = new ArrayList(Arrays.asList(
new LocatoinDistances("abc",23.234556),
new LocatoinDistances("xyz",3.3444566),
. . .
. . .
. . .
));
Run Code Online (Sandbox Code Playgroud)
如何根据locsDis arrayList中LocationDistances.distance的最小值从Array列表中选择LocationDistances.locs?
我有一个ArrayList完整的String数组,我无法弄清楚如何循环.迭代器对我来说是新的,即使我过去使用它们,我也不知道该怎么做.
Iterator<String[]> iterator = list.iterator();
while (iterator.hasNext()) {
String trip = "Till: " + iterator.next(0) + " | Från: " + list.get(4) + " | Kostar: " + list.get(1) +"kr | Avgår: " + list.get(2) + " | Ankomst Tid: " + list.get(3) + " | Antal bokningar: " + list.get(4);
Run Code Online (Sandbox Code Playgroud)
这是我正在做的一些实验.我虽然iterator.next()会在当前行返回StringArray,所以我尝试了例如iterator.next(0).据我所知list.get(x)只给我一行.
在上面的代码中,我希望每个行String Array都在某个索引处.像这样的东西:
for each row
system.out.println(String[2] +String[5]);
Run Code Online (Sandbox Code Playgroud) 我有一个问题,我相信解决方案是如此简单,但我无法找到它.我有一个ArrayList较小的ArrayLists.这些列表包含类型的元素String.我想将较小的列表合并为一个,然后删除重复项.让我说清楚.
我有这个:
[[USA, Maine], [USA, Maine, Kennebunk], [USA, Maine, North Berwick],
[USA, New Hampshire], [USA, Keene, New Hampshire], [USA, Keene, New
Hampshire, Main Street], [USA, New Hampshire, Swanzey]].
Run Code Online (Sandbox Code Playgroud)
这是我的主要列表,其中包含较小的列表.我希望有一个最终的ArrayList,它是较小的合并,并删除重复项.
我想要的是:
[USA, Maine, Kennebunk, North Berwick, New Hampshire , Keene, Main Street, Swanzey]
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.谢谢
如果您有一个扩展了的数组列表(数组已增长)以包含许多元素,然后又删除了这些元素,那么实际的数组大小是否会更改以节省内存?
更详细地,当从大数组列表中删除一个元素时,是否恢复了数组中数组空部分的保留内存?从逻辑上讲,由于我们扩展了数组,因此我们可能需要使用此空间,因此不会被触及。
但是,如果我们有一个非常大的数组列表,并且仅使用前10个左右的元素,那么编译器(或在运行时)是否会意识到所有多余的空间都在浪费并且可以恢复?(会减小实际的数组大小吗?(将元素复制到较小的数组中吗?))
arraylist ×10
java ×10
abstract ×1
arrays ×1
c# ×1
duplicates ×1
instanceof ×1
iterator ×1
linked-list ×1
listiterator ×1
split ×1