标记列表中的元素并进行比较

时间:2013-10-08 08:07:55

标签: java list data-structures arraylist hashmap

我有一个存储在" zombie"中的项目列表。时间系统打印会给我。

[<1.0, 3.0, 2.0>, <2.0, 5.0, 4.0>, <2.0, 4.0, 1.0>, <4.0, 7.0, 3.0>]

我的问题是我如何为列表中的每个元素指定一个标签,以便我可以轻松地调用它们<age, height, weight>

标签的最终理念是,我可以对最重的&#34;进行分类。 zombie并将结果存储到hashmap中。

 public class zombieCalculator{

    double age;
    double weight;
    double height;  

        public static Map<Position, List<Position>> Random (List<Position> zombie) {

        System.out.println(time);

        }

       public zombieCalculator( double age, double weight, double height)
  {
      this.age= age;
      this.weight= weight;
      this.height = height;

  } 
    }

2 个答案:

答案 0 :(得分:1)

我认为最好的选择是创建一个具有3参数年龄,身高和脂肪的类僵尸。 然后,您可以创建Fat-Comparator-Class,根据fat参数对进行排序:

class FatZombieComparator implements Comparator<Zombie>{

     int compare(Zombie z1, Zombie z2){
       return z1.getFat() - z1.getFat();
     }
 }

现在您可以将Zombies存储在List中,并使用比较器对列表进行排序:

List<Zombie> zombies = new ArrayList<Zombie>();
zombies.add(...);
Collections.sort(zombies, new FatZombieComparator())

您可以为年龄或身高创建新的比较类

答案 1 :(得分:0)

你需要一个Zombi课程。

class Zombi{
    double age, height, fat;

    @Override
    public String toString() {
        return "age: " + age + ", height: " + height + ", fat: " + fat;
    }
}

将地图更改为

Map<Position, Zombi> map;