gpt4 book ai didi

java - 对列表进行排序取决于另一个排序列表,该列表具有一个共同的排序属性

转载 作者:行者123 更新时间:2023-12-02 12:29:59 26 4
gpt4 key购买 nike

抱歉描述太长,但我试图准确地解释内容,

我有两个不同对象的列表,例如,

class Company {
int id;
String name;
/* getters and setters */
}

class CompanyBySupplier {
String nameId;
Long stakeValue;
Long incomeValue;
/* getters and setters */
}

这些列表中的共同属性是公司的 idnameIdCompanyBySupplier

listToSortCompanyBySupplier 的对象列表,sortedListCompany 的对象列表,

List<CompanyBySupplier> listToSort = {["ID3,546456,56464"],["ID4",4565,456456],["ID1,1234,2345"],["ID2",4335,34535],["ID5,345,546"]}

List<Company> sortedList = {["ID1","A"],["ID2","B"],["ID3","C"],["ID4","D"],["ID5","E"]}

如果您观察到 sortedList 已经根据名称属性进行排序,我想间接对 lisToSort 进行排序。

这意味着,我需要按照 listToSort 的顺序获取 sortedList,并比较 idCompanynameIdCompanyBySupplier

所以预期的输出应该是,

list listToSort = {["ID1,1234,2345"],["ID2",4335,34535],["ID3,546456,56464"],["ID4",4565,456456],["ID5,345,546"]}

因为ID1,ID2,ID3,ID4,ID5是Company的sortedList中的顺序。

我能想到的是通过比较两个列表的 id 和 nameid 来创建一个新列表,该列表将包含新类型的对象,例如,

class CompanyData {
String actualCompanyName;
Long stakeValue;
Long incomeValue;
}

并在actualCompanyName上使用Comparator,这将解决我的问题。但我很想知道是否还有其他更好的方法来做到这一点

最佳答案

您的排序列表已根据 Id 排序。您可以根据相同的 ID 对第二个列表进行排序。

List<CompanyBySupplier> listToSort = new List<CompanyBySupplier> { new CompanyBySupplier() { nameId = "ID3", stakeValue = "546456", incomeValue = "56464" }, new CompanyBySupplier() { nameId = "ID4", stakeValue = "546456", incomeValue = "56464" }, new CompanyBySupplier() { nameId = "ID2", stakeValue = "546456", incomeValue = "56464" }, new CompanyBySupplier() { nameId = "ID1", stakeValue = "2345", incomeValue = "2346" } };
List<Company> sortedList = new List<Company>() { new Company(){ id = "ID1", name = "A" }, new Company() { id = "ID2", name = "B" }, new Company() { id = "ID3", name = "C" } };


listToSort.Sort(delegate(CompanyBySupplier x, CompanyBySupplier y)
{
return x.nameId.CompareTo(y.nameId);
});

foreach (var item in listToSort)
{

Console.WriteLine(item.nameId);
}
Console.ReadKey();
}
}

public class Company
{
public string id { get; set; }
public string name { get; set; }
}

public class CompanyBySupplier
{
public String nameId;
public string stakeValue;
public string incomeValue;
}

关于java - 对列表进行排序取决于另一个排序列表,该列表具有一个共同的排序属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45324495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com