list,set练习和Map简述

    xiaoxiao2025-10-29  7

    任务一:

    按字符串长度排序

    定义TreeSet集合

    public static void main(String[] args) { Com com = new Com(); Set set = new TreeSet(com); // 传入参数 set.add("adn"); set.add("ndlkdj"); set.add("bv"); set.add("acfun"); set.add("bilibili"); System.out.println(set); } } 定义类接comparator接口

    class Com implements Comparator{ @Override public int compare(Object o1, Object o2) { // TODO Auto-generated method stub if (!(o1 instanceof String && o2 instanceof String)) { throw new RuntimeException(); } String s1 = (String) o1; String s2 = (String) o2; if (s1.length()>s2.length()) { return 1; }else if (s2.length()>s1.length()) { return -1; } if (s1.length()==s2.length()) { //避免两个字符串长度相时的情况。进行内容比较 return s1.compareTo(s2); }else { return s1.length()>s2.length()?1:-1; } // return 0; } }运行结果

    任务二:

    将字符串"90 -7 0 18 2 45 4"中的数值进行排序。

    public static void main(String[] args) { Set set = new TreeSet<>(); String str = "90 0 -3 56 24 26"; String[] split = str.split(" "); //空格切割字符串 for (int i = 0; i < split.length; i++) { //遍历数组 String stri = split[i]; set.add(Integer.valueOf(stri)); //装箱成Integer类 } System.out.println(set); }

    Map集合

    HashMap     和    遍历取出元素

    往后写集合时,要注意加上泛型

    public static void main(String[] args) { Map<String,String> map = new HashMap<>(); map.put("a", "暴风"); map.put("b", "影音"); map.put("s", "网址"); Set<Entry<String, String>> entrySet = map.entrySet(); //遍历map Iterator<Entry<String, String>> iterator = entrySet.iterator(); while (iterator.hasNext()) { Entry<String, String> entry = iterator.next(); entry.getKey(); entry.getValue(); System.out.println(entry.getKey()+entry.getValue()); } }

    更复杂一点的map两种遍历方法

    class Student{ private String name; private int num; public Student(String name, int num){ this.name = name; this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } @Override public String toString() { return "Student [name=" + name + ", num=" + num + "]"; } } 主方法先定义list集合,在声明map集合

    List<Student> list = new ArrayList<>(); list.add(new Student("sara",22)); list.add(new Student("nokita",23)); list.add(new Student("hakii",25)); list.add(new Student("whales",26)); Map<String,List> map = new HashMap<>(); //注意泛型 map.put("andriod", list);

    遍历方法一:while嵌套循环

    Set<Entry<String, List>> entrySet = map.entrySet(); //方法一 Iterator<Entry<String, List>> iterator = entrySet.iterator(); while (iterator.hasNext()) { //while循环嵌套 Map.Entry<String, List> entry = (Map.Entry<String, List>) iterator.next(); String firstname = entry.getKey(); List<Student> list2 = entry.getValue(); Iterator<Student> iterator2 = list2.iterator(); while (iterator2.hasNext()) { Student student = iterator2.next(); System.out.println(firstname+"---"+student.getName()+"...."+student.getNum()); //获取名字和姓名 } }

    遍历方法二:高级for循环(更简洁)

    // for (集合中的元素类型 变量名 : 要遍历的集合) { // }高级for循环 for (Entry<String, List> entry : entrySet) { //方法二 String key = entry.getKey(); List<? extends Student> value = entry.getValue(); for (Student student : value) { System.out.println(key +"----"+student.getName()+"----"+student.getNum()); } }运行结果

    转载请注明原文地址: https://ju.6miu.com/read-1303640.html
    最新回复(0)