练习题05List+Iterator

  1. 使用LinkedHashSet存储以下元素: "王昭君","王昭君","西施","杨玉环","貂蝉"。使用迭代器和增强for循环遍历LinkedHashSet。
  2. 有2个数组,第一个数组内容为: [黑龙江省,浙江省,江西省,广东省,福建省],第二个数组为: [哈尔滨,杭州,南昌,广州,福州],将第一个数组元素作为key,第二个数组元素作为value存储到Map集合中。如{黑龙江省=哈尔滨,浙江省=杭州...}。
  3. 请使用Map集合存储自定义数据类型Car做键,对应的价格做值。并使用keySet和entrySet两种方式遍历Map集合。
  4. 向list集合添加姓名{张三,李四,王五,二丫,钱六,孙七},将二丫替换为王小丫。
  5. 定义人类,包含姓名和年龄属性。创建4个人存储到HashSet中,姓名和年龄相同的人看做同一人不存储。
1、
package com.xxx;

import java.util.Iterator;
import java.util.LinkedHashSet;

public class Exe1 {
    public static void main(String[] args) {
        LinkedHashSet<String> strings = new LinkedHashSet<>();
        strings.add("王昭君");
        strings.add("西施");
        strings.add("杨玉环");
        strings.add("貂蝉");
        strings.add("王昭君");

        Iterator<String> iterator = strings.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            System.out.println(s);
        }

        for (String s : strings) {
            System.out.println(s);
        }
    }
}

2、
package com.xxx;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class Exe2 {
    public static void main(String[] args) {
        String[] str1 = {"黑龙江", "浙江省", "江西省", "广东省", "福建省"};
        String[] str2 = {"哈尔滨", "杭州", "南昌", "广州", "福州"};
        HashMap<String, String> hashMap = new HashMap<>();

        for (int i = 0; i < str1.length; i++) {
            hashMap.put(str1[i], str2[i]);
        }
        System.out.println(hashMap);
    }
}

3、
package com.xxx;

public class Car {
    private String carName;
    private int carPrice;

    public Car() {
    }

    public Car(String carName, int carPrice) {
        this.carName = carName;
        this.carPrice = carPrice;
    }

    public String getCarName() {
        return carName;
    }

    public void setCarName(String carName) {
        this.carName = carName;
    }

    public int getCarPrice() {
        return carPrice;
    }

    public void setCarPrice(int carPrice) {
        this.carPrice = carPrice;
    }

    @Override
    public String toString() {
        return "Car{" +
                "carName='" + carName + '\'' +
                ", carPrice=" + carPrice +
                '}';
    }
}
package com.xxx;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Exe3 {
    public static void main(String[] args) {
        Map<Car, Integer> map = new HashMap<>();

        map.put(new Car("劳斯莱斯",500),500);
        map.put(new Car("布加迪", 1200),1200);

        Set<Car> cars = map.keySet();
        for (Car c : cars) {
            System.out.println(c.getCarName() + "-->" + c.getCarPrice());
        }

        Set<Map.Entry<Car, Integer>> entries = map.entrySet();
        for (Map.Entry<Car, Integer> entry : entries) {
            Car key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key.getCarName() + "-->" + value);
        }
    }
}

4、
package com.xxx;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Exe4 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("二丫");
        list.add("钱六");
        list.add("孙七");

        //replaceAll使用另一个值替换列表中出现的所有某一指定值。
        Collections.replaceAll(list, "二丫", "王小丫");
        System.out.println(list);
    }
}

5、
package com.xxx;

import java.util.Objects;

public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age &&
                Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

package com.xxx;

import java.util.HashSet;

public class Exe5 {
    public static void main(String[] args) {
        HashSet<Person> people = new HashSet<>();
        people.add(new Person("黑崎",18));
        people.add(new Person("蓝染",33));
        people.add(new Person("格里姆乔",50));
        people.add(new Person("重国",999));
        people.add(new Person("蓝染",33));
        people.add(new Person("蓝染",43));

        //Person类那边一定要重写equals和hashCode方法,否则重复对象还是会被录入
        for (Person person : people) {
            System.out.println(person);
        }
    }
}

posted @ 2022-10-14 21:38  Rix里克斯  阅读(65)  评论(0)    收藏  举报