具有 3 个字符串参数的树状图 java

Treemap with 3 Strings arguments java

我需要在 java 中的任何结构数据中保存 3 个变量,我在 treemap 中考虑,因为我需要按字母顺序对地图进行排序,但是,treemap 只接受 2 个参数。

当 a 可以根据第一个参数的功能对结构进行排序时,还有其他结构吗?喜欢

["abc","house","car"]
["bdc","house2","car2"]

您可以使用带有自定义比较器的数组列表:

public static void main(String[] args) {

    List<String[]> data = new ArrayList<>();
    data.add(new String[]{"bdc", "house2", "car2"});
    data.add(new String[]{"abc", "house", "car"});

    printData(data);

    Collections.sort(data, new Comparator<String[]>() {

        @Override
        public int compare(String[] o1, String[] o2) {
            return o1[0].compareTo(o2[0]);
        }
    });

    System.out.println();
    printData(data);

}

public static void printData(List<String[]> data){
    for(String[] s: data){
        System.out.println(Arrays.toString(s));
    }
}

输出:
排序前:
[bdc, house2, car2]
[abc, 房子, 汽车]

排序后:
[abc, 房子, 汽车]
[bdc, house2, car2]

您可以使用这 3 个字段

创建一个 class
     class Person 
   {
     String name;
     String houseName;
     String carName;
    // add getter... setter..
     ......  
   }

现在您可以使用名称或任何其他字段对其进行排序。

public static void main(String[] args) {

List<Person> data = new ArrayList<>();
data.add(new Person(name1, housname1, carname1));
data.add(new Person(name2, housename2, carname2));

// sorting using name 
data.sort((o1, o2)->o1.getName().compareTo(o2.getName()));

// print data
printData(data);

}

public static void printData(List<Person> data)
{
   data.forEach(obj -> System.out.println("name" + obj.getName() + " " + "home" + obj.getHomeName() + " " + "car" + obj.getCarName()));

}