gpt4 book ai didi

java - 如何比较 arraylist 与 list java

转载 作者:行者123 更新时间:2023-12-02 08:13:06 25 4
gpt4 key购买 nike

    List<String[]> sarray;
ArrayList<ContentTable> currentData=new ArrayList<ContentTable>();

//here sarray is initialized with data
sarray = reader.readAll();


for(String[] arr : sarray)
{
System.out.println("array data "+ Arrays.toString(arr));
}

for(ContentTable ct : currentData)
{
System.out.println("list data "+ct.getId() +" "+ ct.getSubid() +" "+ct.getChpid()+" "+ct.getSec_name()+" "+ct.getContent());
}

输出数组和列表的 1 个结果:

数组数据 -> [9, 10, 83, Concepts: 1-10, <p>We&#x2019;ll discuss many of the concepts in this chapter in depth later. But for now, we need a brief review of these concepts to equip you for solving exercises in the chapters that follow.</p>]

列出数据-> 9 10 83 Concepts: 1-10 <p>We&#x2019;ll discuss many of the concepts in this chapter in depth later. But for now, we need a brief review of these concepts to equip you for solving exercises in the chapters that follow.</p>

 //fields with getters and setters in ContentTable Class
public class ContentTable {

int id;
int subid;
int chpid;
String sec_name;
String content;
}

现在我想要实现的是创建两个列表,

ArrayList<ContentTable> updatedData=new ArrayList<ContentTable>();
ArrayList<ContentTable> addedData=new ArrayList<ContentTable>();

这些将在比较sarray后填充数据和currentdata以这样的方式,

如果ct.getSec_name()ct.getContent()currentdata 中的特定索引处不等于 sarray 中的数据那么它将被添加到 updatedData

并且,

如果ct.getId() , ct.getSubid() , ct.getChpid()在特定索引处不等于 sarray 中的任何一个数据然后它会被添加到addedData

以较低的复杂性来完成此操作的优雅方法是什么,我希望做得最快,因为比较 Arraylist currentData 中的每个元素可能需要时间。与 ArrayList sarray 中的每个元素进行比较。

最佳答案

如何将数组中的每个元素包装到 Content 中。现在将这些内容对象添加到 Set 中。迭代 ArrayList 并针对数组列表中的每个元素检查其是否存在于集合中。如果没有更新添加的数据。如果是,则获取该对象并使用 equals 比较两个内容对象。

请注意,您无论如何都会覆盖内容类型中的 hashCode 和 equals 以使此(Set)起作用。

你一开始做的一次性 Activity 需要时间,也就是准备好套装。但是一旦这组准备好,查找就会非常快。

关于java - 如何比较 arraylist 与 list<string[]> java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17501887/

25 4 0