标签: arraylist

Java HashMap的内存开销与ArrayList相比

我想知道java HashMap与ArrayList相比的内存开销是多少?

更新:

我想提高搜索大包(600万+)相同对象的特定值的速度.

因此,我正在考虑使用一个或多个HashMap而不是使用ArrayList.但我想知道HashMap的开销是多少.

据我所知,密钥不是存储的,只是密钥的散列,所以它应该像对象的散列大小+一个指针.

但是使用了什么哈希函数?它是Object提供的还是另一个?

java memory-management arraylist hashmap

34
推荐指数
4
解决办法
5万
查看次数

将ArrayList转换为对象数组

在java中是否有用于将ArrayList转换为对象数组的命令.我知道如何将每个对象从arrayList复制到对象数组中,但我想知道它是否会自动完成.

我想要这样的东西:

ArrayList<TypeA> a;

// Let's imagine "a" was filled with TypeA objects

TypeA[] array = MagicalCommand(a);
Run Code Online (Sandbox Code Playgroud)

java arrays arraylist

34
推荐指数
3
解决办法
11万
查看次数

在对象的ArrayList中包含(Object o)的时间复杂度

正如标题所说,我想知道ArrayList的contains()方法的时间复杂度是多少.

java arraylist time-complexity

34
推荐指数
2
解决办法
4万
查看次数

使用Guava从List中删除重复项

我们怎样才能在Guava api的帮助下从List中删除重复项?

目前我正在关注此事:

private List<T> removeDuplicate(List<T> list){
return new ArrayList<T>(new LinkedHashSet<T>(list));
}
Run Code Online (Sandbox Code Playgroud)

java generics list arraylist guava

34
推荐指数
3
解决办法
3万
查看次数

为什么我们需要在Java中的ArrayList上使用iterator?

我正在阅读" 我们是否需要在ArrayList上使用迭代器? " 这一问题中提到的答案.

在答案中,用户声明了这样的话:"使用ArrayLists的迭代器的一个大用例是当你想在迭代时删除元素".

即使在Java中使用ArrayList的remove方法也可以实现这一点.我的问题是为什么我们需要ArrayList中的迭代器?

考虑一下代码:

import java.util.*;
public class ocajp66 {
    public static void main(String[] args) {
        ArrayList a = new ArrayList();
        for (int i = 0; i < 10; i++) {
            a.add(i);
        }
        System.out.printf("BEFORE ITERATOR\n");
        for (int i = 0; i < a.size(); i++) {
            System.out.printf("I:%d\n", a.get(i));
        }
        System.out.printf("AFTER ITERATOR\n");
        Iterator i = a.iterator();
        while (i.hasNext()) {
            System.out.printf("I:%d\n", i.next());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释迭代器的重要性吗?如果你能用代码解释我会很棒.

java iterator arraylist

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

为什么ArrayLists的ArrayList不是多维的?

我最近出现在面试中,面试官问我一个关于Arrays和的问题ArrayList.

他问我,如果一个数组的数组可以是多维的,那么,为什么是ArrayList的ArrayList"不是多维?

例如:

// Multidimensional
int[][] array = new int[m][n]; 

// Not multidimensional
ArrayList<ArrayList<Integer>> seq = new ArrayList<ArrayList<Integer>>(); 
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我理解这个吗?

java arrays list arraylist multidimensional-array

34
推荐指数
5
解决办法
4281
查看次数

可分辨对象中的Arraylist

到目前为止,我已经看到了许多可以说明的例子,但由于某种原因,当它变得有点复杂时,我无法让它工作.我有一个Movie对象,它实现了Parcelable.此book对象包含一些属性,例如ArrayLists.在执行ReadTypedList时,运行我的应用程序会导致NullPointerException!我真的没有想法

public class Movie implements Parcelable{
   private int id;
   private List<Review> reviews
   private List<String> authors;

   public Movie () {
      reviews = new ArrayList<Review>();
      authors = new ArrayList<String>();
   }

   public Movie (Parcel in) {
      readFromParcel(in);
   }

   /* getters and setters excluded from code here */

   public void writeToParcel(Parcel dest, int flags) {

      dest.writeInt(id);
      dest.writeList(reviews);
      dest.writeStringList(authors);
   }

   public static final Parcelable.Creator<Movie> CREATOR = new Parcelable.Creator<Movie>() {

      public MoviecreateFromParcel(Parcel source) {
         return new Movie(source);
      }

      public Movie[] newArray(int size) {
         return new Movie[size]; …
Run Code Online (Sandbox Code Playgroud)

java android arraylist typed parcelable

33
推荐指数
2
解决办法
3万
查看次数

从ArrayList中删除多个元素

我有一堆索引,我想删除这些索引中的元素ArrayList.我不能做一个简单的remove()s 序列,因为元素在每次移除后都会移位.我该如何解决这个问题?

java arraylist

33
推荐指数
4
解决办法
5万
查看次数

如何删除添加到List中的最后一个元素?

我在c#中有一个List,我在其中添加列表字段.现在添加i时必须检查条件,如果条件满足,那么我需要删除列表中添加的最后一行.这是我的示例代码..

    List<> rows = new List<>();
    foreach (User user in users)
    {
        try
        {
            Row row = new Row();
            row.cell = new string[11];
            row.cell[1] = user."";
            row.cell[0] = user."";
            row.cell[2] = user."";         

            rows.Add(row);

            if (row.cell[0].Equals("Something"))
            {

                //here i have to write code to remove last row from the list
                //row means all the last three fields

            }

        }
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何从c#中的列表中删除最后一行.请帮我.

c# list arraylist

33
推荐指数
4
解决办法
9万
查看次数

HashSet与ArrayList包含性能

处理大量数据时,我经常发现自己在做以下事情:

HashSet<String> set = new HashSet<String> ();
//Adding elements to the set
ArrayList<String> list = new ArrayList<String> (set);
Run Code Online (Sandbox Code Playgroud)

类似于"转储"列表中集的内容.我通常这样做,因为我添加的元素通常包含我要删除的重复项,这似乎是一种删除它们的简单方法.

只考虑到这个目标(避免重复),我也可以写:

ArrayList<String> list = new ArrayList<String> ();
// Processing here
if (! list.contains(element)) list.add(element);
//More processing here
Run Code Online (Sandbox Code Playgroud)

因此无需将该集"转储"到列表中.但是,在插入每个元素之前我会做一个小的检查(我假设HashSet也这样做)

这两种可能性中的任何一种显然更有效吗?

java arraylist hashset

33
推荐指数
4
解决办法
3万
查看次数