我在两个不同的班级有两个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 {
Run Code Online (Sandbox Code Playgroud)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 …
如何将此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) 我想创建一个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)
所以我的问题是,如果没有迭代,还有另一种方法可以做同样的事情.我想要最小的迭代来提高效率.
我目前正在使用一个抽象类,我将通过另一个名为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) 简单的问题.以下代码是否是线程安全的......?
我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)
谢谢
作业:寻找更好的策略或方法而不是完整的代码。
在两种情况下,我有两个整数的arrayLists:
我的目标是在两种情况下都将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) 我从数据库中检索数据并通过数组循环它以显示相似的数量.
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) 我有一个存储自定义对象的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) 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的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)