Java 合并两个无序的通用数组列表

Java 合并两个无序的通用数组列表,java,generics,arraylist,Java,Generics,Arraylist,我正在尝试创建一个合并和拆分方法,以添加到这些方法中: public interface ArrayListADT<T> extends Cloneable { public boolean isEmpty(); public boolean isFull(); public int listSize(); public int maxListSize(); public void print(); public Object clone(); public boolean

我正在尝试创建一个合并和拆分方法,以添加到这些方法中:

public interface ArrayListADT<T> extends Cloneable {
public boolean isEmpty(); 
public boolean isFull(); 
public int listSize(); 
public int maxListSize();
public void print();
public Object clone(); 
public boolean isItemAtEqual(int location, T item); 
public void insertAt(int location, T insertItem); 
public void insertEnd(T insertItem); 
public void removeAt(int location); 
public T retrieveAt(int location); 
public void replaceAt(int location, T repItem);
public void clearList(); 
public int search(T searchItem); 
public void remove(T removeItem); 
}
公共接口ArrayListADT扩展了可克隆性{
公共布尔值为空();
公共布尔值为full();
public int listSize();
public int maxListSize();
公开作废打印();
公共对象克隆();
公共布尔值IsItemEqual(int位置,T项);
公共void insertAt(int位置,T insertItem);
公共无效插入项(T插入项);
公共空间移除(内部位置);
公共T检索AT(内部位置);
公共无效替换(内部位置,报告项);
公共无效清除列表();
公共整数搜索(T搜索项);
删除公共空间(T removeItem);
}
merge方法应该将两个无序数组列表连接到第三个数组列表中。这两个列表没有共同的键。第三个列表应该包含列表1和列表2中的所有项目。订购的产品也应予以保存

public <T extends Comparable<T>> UnorderedArrayList<T>     merge(UnorderedArrayList<T> list, UnorderedArrayList<T> list2){
for (int index2 = 0; index2 < list2.listSize(); index2++) {
    for (int index1 = 0; ; index1++) {
        if (index1 == list.listSize() || list.retrieveAt(index1) > list2.retrieveAt(index2)) {
            list.add(index1, list2.get(index2));
            break;
公共无序ArrayList合并(无序ArrayList列表,无序ArrayList列表2){ 对于(int index2=0;index2list2.retrieveAt(index2)){ add(index1,list2.get(index2)); 打破 >的操作数类型不正确。我应该实现compareTo方法吗

对于split方法,这里是我所拥有的

public void split(UnorderedArrayList list, UnorderedArrayList list2, UnorderedArrayList list3, int key) {
int num = 0;
list.clearList();
list2.clearList();
for(int i = 0;i < list3.length; i++) {
  num = list3.retrieveAt(i);
  if(num <= key) 
    list.insertEnd(num);
  else
    list2.insertEnd(num);
public void split(无序ArrayList列表、无序ArrayList列表2、无序ArrayList列表3、int键){
int num=0;
clearList();
list2.clearList();
for(int i=0;icompareTo
方法吗

好的,
Comparable
(要求是
T
)已经有一个了。所以您使用它,是的:

if (index1 == list.listSize() || list.retrieveAt(index1).compareTo(list2.retrieveAt(index2)) > 0) {

如果您要编写一个用作
T
的类,那么是的,您需要实现
compareTo
以满足
Comparable
契约。

什么是
UnorderedArrayList
?它是
ArrayListDT
吗?它是从
ArrayListClass
扩展而来的类,是实现
数组的抽象类ListADT
@TJ