标签: arraylist

如何在文件中存储和检索对象的arraylist?

可能重复:
如何在java中序列化ArrayLIst而不会出现错误?

我在两个不同的班级有两个arraylists.一种是存储交易对象temporarily和其他permanent.我使用一种addAll方法将对象从temporaryarraylist 复制到permanent.然后将对象从permanentarraylist 保存到file.当我的程序重新启动时,permanentarraylists中的对象将从中恢复file.但我得到一个例外.我的代码有什么问题?

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList;

/****@author Haleemdeen*/public class FileImportExport {

private ArrayList<Stock> permntTransactions=new ArrayList<Stock>();


void cancatToPerrmntTransactions(ArrayList<Stock> arraylist1){
    permntTransactions.addAll(arraylist1);
}

ArrayList<Stock> displayPermntTransactions(){
    return permntTransactions;
}

    void exportToFile(){

    try{  // Catch errors in I/O if necessary.
    // Open a file to write to, named SavedObj.sav.
    FileOutputStream saveFile=new FileOutputStream("SaveObj.sav");

    // Create an ObjectOutputStream to put …
Run Code Online (Sandbox Code Playgroud)

java file-io arraylist

0
推荐指数
1
解决办法
6553
查看次数

ArrayList到Array

如何将此ArrayList的值转换为数组?所以看起来像,

String[] textfile = ... ;
Run Code Online (Sandbox Code Playgroud)

值是字符串(文本文件中的单词),并且有超过1000个单词.在这种情况下,我不能做,words.add("")1000次.我怎么能把这个列表放到一个数组中?

    public static void main(String[]args) throws IOException
    {
        Scanner scan = new Scanner(System.in);
        String stringSearch = scan.nextLine();

        List<String> words = new ArrayList<String>(); //convert to array
        BufferedReader reader = new BufferedReader(new FileReader("File1.txt"));

        String line;
        while ((line = reader.readLine()) != null) {                
            words.add(line);
        }
Run Code Online (Sandbox Code Playgroud)

java arrays algorithm arraylist

0
推荐指数
1
解决办法
4940
查看次数

在没有迭代的情况下添加ArrayList

我想创建一个ArrayList<Float>长度为350的.我这样做了:

x = new ArrayList<Float>(350);
Run Code Online (Sandbox Code Playgroud)

不,我希望这个数组在每个点都有'零'浮点值.我可以做这个:

for (int i = 0; i< 350 ; i++){
            x.add((float) 0.0);
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如果没有迭代,还有另一种方法可以做同样的事情.我想要最小的迭代来提高效率.

java arrays arraylist

0
推荐指数
1
解决办法
121
查看次数

正确使用泛型

我目前正在使用一个抽象类,我将通过另一个名为People的类进行扩展

public abstract class MediaContainer<T> {
    abstract T DisplayName(T dispname);
}
Run Code Online (Sandbox Code Playgroud)

但是当我试图在第二次覆盖它时我得到一个错误

public class People<T> extends MediaContainer<T> {
    @Override public T DisplayName(T person){
        return System.out.println(person);
    }
}
Run Code Online (Sandbox Code Playgroud)

java generics abstract-class arraylist

0
推荐指数
1
解决办法
63
查看次数

HashTable中的ArrayList是线程安全的

简单的问题.以下代码是否是线程安全的......?

  1. 如果是的话,有没有更好的方法..?
  2. 如果不是,为什么.?以及如何使其线程安全.

我ArrayList内心的主要疑问是Hashtable因为ArrayList不是线程安全的.如果它的一部分也会发生同样的事情Hashtable.

Hashtable<Thread, List<String>> threadObjects = new Hashtable<Thread, List<String>>();
 // lets assume some object is added. 
 synchronized (threadObjects)
  {
     thread = Thread.currentThread();
     List<String> v =  threadObjects.get(thread);
     if (null != v)
     {
       // do something
     }
  }
Run Code Online (Sandbox Code Playgroud)

谢谢

java concurrency multithreading arraylist thread-safety

0
推荐指数
1
解决办法
290
查看次数

Java:交织两个基于整数的arraylist-&gt;好的方法?

作业:寻找更好的策略或方法而不是完整的代码。

在两种情况下,我有两个整数的arrayLists:

  1. 第一个列表大于第二个
  2. 第二个列表大于第一个

我的目标是在两种情况下都将list2的元素插入到list1中。我创建了一个可以做到这一点的方法,但是我觉得自己可以做得更好。

这是条件1的预期结果。请注意,在用尽list2的元素之后,我们将list1的元素保留在原位:

list1: [10, 20, 30, 40, 50, 60, 70]
list2: [4, 5, 6, 7]
Combined: [10, 4, 20, 5, 30, 6, 40, 7, 50, 60, 70]
Run Code Online (Sandbox Code Playgroud)

这是条件2的预期结果。由于list2包含更多元素,因此我们在list1用尽后将这些元素附加到list1上:

list1: [10, 20, 30, 40]
list2: [4, 5, 6, 7, 8, 9, 10, 11]
Combined: [10, 4, 20, 5, 30, 6, 40, 7, 8, 9, 10, 11]
Run Code Online (Sandbox Code Playgroud)

我的代码使用if-else语句来处理这两个条件。然后,我使用迭代器遍历list2的元素并将其插入list1。

public static void main(String[] Args)
{
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(10);
    numbers.add(20);
    numbers.add(30);
    numbers.add(40);
    //numbers.add(50);
    //numbers.add(60);
    //numbers.add(70);

    ArrayList<Integer> numbers2 …
Run Code Online (Sandbox Code Playgroud)

java iterator arraylist

0
推荐指数
1
解决办法
4778
查看次数

ArrayList保持返回0

我从数据库中检索数据并通过数组循环它以显示相似的数量.

        public void SetUpLikeAmount() {
    int likes = 0;
    ArrayList <Integer> likeArray = new ArrayList <Integer>();
    for (int count = 0; count < likeArray.size();count++){
    // Set Up Database Source
    db.setUp("IT Innovation Project");
    String sql = "Select likeDislike_likes from forumLikeDislike WHERE topic_id = "
            + topicId + "";
    ResultSet resultSet = null;
    // Call readRequest to get the result
    resultSet = db.readRequest(sql);
    try {
        while (resultSet.next()) {
            likeArray.add(Integer.parseInt(resultSet.getString("likeDislike_likes")));
            likes += likeArray.get(count);
        }
        resultSet.close();
    } catch (Exception e) {
        System.out.println(e);
    }

    } …
Run Code Online (Sandbox Code Playgroud)

java sql arraylist

0
推荐指数
1
解决办法
117
查看次数

序列化对象的ArrayList

我有一个存储自定义对象的ArrayList.我想将ArrayList序列化为字符串,以便将其保存在Application设置中.

这个问题看起来要解决它,但是在java中.而且我对XML并不聪明,所以有人可以提供帮助吗? 序列化Date对象类型的ArrayList

我有我的ArrayList设置:

...
MyObject tempObj = new MyObject("something",1,"something");
MyCollection.Add(tempObj);
...
Run Code Online (Sandbox Code Playgroud)

我最初有这个.它输出字符串,但对象不存在:

    private string SerializeArrayList(ArrayList obj)
    {
            System.Xml.XmlDocument doc = new XmlDocument();
            Type[] extraTypes = new Type[1];
            extraTypes[0] = typeof(MyObject);
            System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(ArrayList), extraTypes);
            System.IO.MemoryStream stream = new System.IO.MemoryStream();
            try
            {
                serializer.Serialize(stream, obj);
                stream.Position = 0;
                doc.Load(stream);
                return doc.InnerXml;
            }
            catch { throw; }
            finally
            {
                stream.Close();
                stream.Dispose();
            }
}
Run Code Online (Sandbox Code Playgroud)

编辑:代码请求

    public class MyObject
    {
        private string eN;      
        private Boolean bE;          
        private int min;         
        private Boolean bot; …
Run Code Online (Sandbox Code Playgroud)

c# xml serialization arraylist object

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

意外类型需要变量找到值

public class example
{
    public ArrayList<Integer> ToFill = new ArrayList<>();

    public void Alter(int Value , int Position)
    { 
      ToFill.get(Position) = Value ;  // this line has an error 
    }
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,这段代码给出了编译错误,有人可以解释原因吗?

java arraylist

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

ArrayList <HeavyOjbect> clone()

我有一个关于Java中ArrayList的clone()方法的问题.

ArrayList<HeavyOjbect> original = new ArrayList<HeavyOjbect>();
original.add(new HeavyOjbect(0));
original.add(new HeavyOjbect(1));
original.add(new HeavyOjbect(2));
ArrayList<Integer> copy = original;
copy.remove(0);
Run Code Online (Sandbox Code Playgroud)

原创 - > [HeavyOjbect1,HeavyOjbect2]

copy - > [HeavyOjbect1,HeavyOjbect2]

现在使用clone()方法

ArrayList<HeavyOjbect> original = new ArrayList<HeavyOjbect>();
original.add(new HeavyOjbect(0));
original.add(new HeavyOjbect(1));
original.add(new HeavyOjbect(2));
ArrayList<Integer> copy = (ArrayList<HeavyOjbect>) original.clone();
copy.remove(0);
Run Code Online (Sandbox Code Playgroud)

原始 - > [HeavyOjbect0,HeavyOjbect1,HeavyOjbect2]

copy - > [HeavyOjbect1,HeavyOjbect2]

对 ?

但我无法弄清楚克隆的作用.它是否克隆每个HeavyObject?我的意思是如果克隆1000倍我的ArrayList,内存是否会爆炸?

编辑:所以克隆

new HeavyOjbect(0) -> @10
new HeavyOjbect(1) -> @20
new HeavyOjbect(1) -> @30

original(ref1 to @10, ref1 to @20, ref1 to @30)
copy(ref2 to @10, ref2 …
Run Code Online (Sandbox Code Playgroud)

java performance clone arraylist

0
推荐指数
1
解决办法
171
查看次数