标签: arraylist

如何从Java ArrayList中删除顺序元素?

我是一个相对较新的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 arraylist

6
推荐指数
2
解决办法
4299
查看次数

ArrayList:帮助从Java翻译成C#

我该如何翻译这个Java代码:

private List<MPoint> classes = new ArrayList<MPoint>(); // MPoint is my own class
Run Code Online (Sandbox Code Playgroud)

到C#?最终关键字在Java中意味着什么?C#中有什么类似的东西?我是C#和Java的新手,我需要帮助:)

c# java arraylist

6
推荐指数
1
解决办法
4725
查看次数

使用Java中的retainAll获取多个列表的交集

我很难找到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]

java arraylist

6
推荐指数
1
解决办法
2万
查看次数

测量时间并不能确认LinkedList的优势

我正在阅读之间的不同之处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)

java linked-list arraylist listiterator

6
推荐指数
1
解决办法
236
查看次数

一个ArrayList中的多个对象类型

我有一个名为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().但是,因为我能够确定当前用户的实例是什么,所以我很好奇是否仍然可以根据用户的类型调用特定方法.

这是可能的,还是我必须将用户类型分成单独的列表?

请尽快回复,非常感谢.

java abstract-class arraylist instanceof abstract

6
推荐指数
2
解决办法
1093
查看次数

拆分字符串并存储在arraylist中

我想拆分下面提到的字符串并将其保存在两个单独的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)

java split arraylist

6
推荐指数
1
解决办法
1万
查看次数

根据Java中列表中的最小属性值选择一个对象

我上课了

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?

java arraylist

6
推荐指数
2
解决办法
3990
查看次数

迭代Arraylist <String []>

我有一个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)

java arrays iterator arraylist

6
推荐指数
1
解决办法
2万
查看次数

从ArrayLists的ArrayList中删除重复项

我有一个问题,我相信解决方案是如此简单,但我无法找到它.我有一个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)

任何帮助表示赞赏.谢谢

java arraylist duplicates

6
推荐指数
2
解决办法
826
查看次数

Java的ArrayList删除元素恢复浪费的空间?

如果您有一个扩展了的数组列表(数组已增长)以包含许多元素,然后又删除了这些元素,那么实际的数组大小是否会更改以节省内存?

更详细地,当从大数组列表中删除一个元素时,是否恢复了数组中数组空部分的保留内存?从逻辑上讲,由于我们扩展了数组,因此我们可能需要使用此空间,因此不会被触及。

但是,如果我们有一个非常大的数组列表,并且仅使用前10个左右的元素,那么编译器(或在运行时)是否会意识到所有多余的空间都在浪费并且可以恢复?(会减小实际的数组大小吗?(将元素复制到较小的数组中吗?))

java arraylist

6
推荐指数
1
解决办法
57
查看次数