Java:填充两个向量并对它们进行排序

Java:填充两个向量并对它们进行排序,java,vector,comparator,Java,Vector,Comparator,如何填充两个向量并将它们相互组合(索引或类中的对象类型)。我想如果我使用索引来组合它们,那么排序就可以用集合来处理。排序否则我必须创建一个比较器 我们必须按照Java1.4约定进行编码 让你的想象更容易;它是一个具有排序向量(行)和内容向量(所有列)的网格。它们需要填入一个向量并进行排序 上下文:我有一个GridBagLayout,它以wierd顺序包含所有组件。我需要遍历所有组件,并按照正确的网格顺序填充它们(gridx,gridy)。对于这个解决方案,我考虑了两个向量,一个定义行并指向包含其

如何填充两个向量并将它们相互组合(索引或类中的对象类型)。我想如果我使用索引来组合它们,那么排序就可以用集合来处理。排序否则我必须创建一个比较器

我们必须按照Java1.4约定进行编码

让你的想象更容易;它是一个具有排序向量(行)和内容向量(所有列)的网格。它们需要填入一个向量并进行排序


上下文:我有一个GridBagLayout,它以wierd顺序包含所有组件。我需要遍历所有组件,并按照正确的网格顺序填充它们(gridx,gridy)。对于这个解决方案,我考虑了两个向量,一个定义行并指向包含其cols的向量。要么在填充向量时解析排序,要么在第二步中对其进行排序。我想对于Java4来说,除了包含一个对象的两个向量之外,没有其他方法了,对吗?

如果我理解,请告诉我。作为输入,您将得到两个向量。第一个是引用第二个向量中的索引的有序行号列表。第二个向量是一些东西的列表。您希望向量包含与第二个向量相同的对象,但按第一个向量中描述的顺序排序

假设你想这么做,我会这么做:

public class ThisHadBetterNotBeAHomeworkAssignmentYoungMan {

    public Vector orderContent(Vector indices, Vector content) {
       Object[] orderedStuff = new Object[content.size()];
       for( int i=0; i < indices.size(); i++ ) {
          orderedStuff[i] = content.get(((Integer)indices[i]).intVal());
       }
       return new Vector(orderedStuff);
    }
}
public类这比家庭作业任务Youngman更好{
公共矢量orderContent(矢量索引、矢量内容){
Object[]orderedStuff=新对象[content.size()];
对于(int i=0;i
//请注意,这是一段相当粗糙的代码,我既没有执行它,也没有费心检查是否可以将内容数组作为构造函数传递到向量中,但您已经明白了


//还要注意的是,我不确定你到底在问什么,这可能是完全错误的。

面向对象的解决方案是将两个向量中的对象包装在实现比较的东西中,并保留一个指向真实对象的指针。通过这种方式,您可以对两个向量进行相互独立的排序,并使用包装器获取真实对象


这是“装饰者”的设计模式。

对不起,伙计,你的问题我不太清楚,也许你想换个说法。也许你是对的。。。叹气,您有一个GridBagLayout,它以wierd顺序包含所有组件。我需要遍历所有组件,并按照正确的网格顺序填充它们(gridx,gridy)。对于这个解决方案,我考虑了两个向量,一个定义行并指向包含其cols的向量。要么在填充向量时解析排序,要么在第二步中对其进行排序。我想对于Java4来说,除了包含一个对象的两个向量之外,没有其他方法了,对吗?请编辑您的问题并澄清它;不是每个人都会阅读注释。不相关的注意:如果可以(即禁止代码中其他地方的遗留用法),您应该放弃使用不推荐的Vector,转而使用更快的ArrayList。顶部的描述几乎就是我需要的。除了orderVector不需要与contentVector相同之外。在我看来,orderVector应该只有两个索引。