Фабрика из десяти юзеров в HashMap. Возраст - рандомные значения от 0 до 100. Когда будут перебираться в for: если два юзера с одинаковым возрастом, то клонировать одного из них. Не могу понять как это сделать с for. Думала с массивом из объектов, но тоже непонятно как там взять age. Поставьте на путь истинный. | Код | public class User implements Cloneable{ private int age = (int)(Math.random()*100); private int growth; private int weight; private String name;
public User(String name){ this.name = name; }
public int hashCode(){ final int prime = 55; int result = 1; result = prime * result + growth; result = prime * result + weight; return result; }
public User clone() throws CloneNotSupportedException{ return (User) super.clone(); }
public boolean equals(Object obj){ if(this == obj){ return true;} if(obj == null){ return false; } if(getClass() == obj.getClass()){ return false; } User other = (User)obj; if(growth != other.growth){ return false; } if(weight != other.weight){ return false; } if(name != other.name){ return false; } if(age != other.age){ return false; } return true; }
public int getAge(){ return age; }
public int getGrowth(){ return growth; }
public void setGrowthWeight(int growth, int weight){ this.growth = growth; this.weight = weight; }
public int getWeight(){ return weight; }
public String getName(){ return name; } public static void main(String[] args) { Map<User, Integer> map = new HashMap<User, Integer>(); User u = new User("Emily"); u.setGrowthWeight(165, 60); User u1 = new User("Emma"); u1.setGrowthWeight(170, 65); User u2 = new User("Michael"); u2.setGrowthWeight(180, 80); User u3 = new User("Andrew"); u3.setGrowthWeight(180, 70); User u4 = new User("Isabella"); u4.setGrowthWeight(158, 46); User u5 = new User("John"); u.setGrowthWeight(164, 62); User u6 = new User("Samuel"); u6.setGrowthWeight(184, 83); User u7 = new User("Anna"); u7.setGrowthWeight(165, 53); User u8 = new User("Jasmine"); u8.setGrowthWeight(168, 60); User u9 = new User("Robert"); u9.setGrowthWeight(193, 78); map.put(u, 1); map.put(u1, 2); map.put(u2, 3); map.put(u3, 4); map.put(u4, 5); map.put(u5, 6); map.put(u6, 7); map.put(u7, 8); map.put(u8, 9); map.put(u9, 10); for(Entry<User, Integer> entry : map.entrySet()){ System.out.println(entry.getKey() + " " + entry.getValue()); } } } |
|