Java——集合框架之Set&HashSet,HashMap,泛型,compareTo

来源:互联网 发布:火影忍者手办淘宝 编辑:程序博客网 时间:2024/06/05 00:57

Set

  • Set接口——数据存放无序,非常简单,主要呈现信息列表

  • Set接口存储一组唯一、无序的对象

  • HashSet是Set接口常用的实现类

  • Set接口不存在get方法

  • Iterator接口:表示对集合进行迭代的迭代器
  • hasNext():表示判断是否还有元素可以迭代
  • next():方法:返回迭代的下一个元素

HashMap

这里写图片描述

    public static void main(String[] args) {        //存储数据的载体        Set set = new HashSet<>();        set.add(new Theme(1, "标题1", "简介one"));        set.add(new Theme(2, "标题2", "简介two"));        //遍历数据        Iterator iter = set.iterator();        while(iter.hasNext()){            Theme theme = (Theme)iter.next();            System.out.println(theme.getId()+" "+theme.getName()+" "+theme.getRemark());        }    }
public static void main(String[] args) {        Set set = new HashSet<>();//      set.add('b');//      set.add('a');//      Iterator iter = set.iterator();//      while(iter.hasNext()){//          System.out.println(iter.next());//      }        //唯一,不能出现重复的数据        //基本数据类型:值比较  引用数据类型:对象比较(地址)        set.add('a');        set.add(1);        set.add(1);        Theme theme1 = new Theme(1, "1", "1");        Theme theme2 = new Theme(1, "1", "1");        set.add(theme1);        set.add(theme2);        Iterator iter = set.iterator();        while(iter.hasNext()){            System.out.println(iter.next());        }

public static void main(String[] args) {

    //创建map集合对象    Map map = new HashMap<>();    //键值对形式存储,键:一般基本数据类型  值:    //键值对是成对出现的。  key-value    map.put(1, "abc");    map.put(2, "def");    map.put(3, "ghi");    // 通过key得到value    System.out.println(map.get(1));    System.out.println(map);    // remove 删除    map.remove(2);    System.out.println(map);    // size 可以得到键值对的个数    System.out.println(map.size());    //存储国家编号    Map map2 = new HashMap<>();    //  map中的ket:Object   value:Object    map2.put("CN", "China");    map2.put("US", "America");    map2.put("JP", "Japan");    System.out.println(map2.get("CN"));    // containsKey 是否包含传入的key的键值对    System.out.println(map.containsKey("HK"));    System.out.println(map.containsKey("CN"));    Map map3 = new HashMap<>();    Student stu = new Student(1, "小张", 12);    map3.put(stu.getStuId(), stu);    if(map3.containsKey(stu.getStuId())){        System.out.println("找到了!");    }else{        System.out.println("没找到!");    }}
        Map map = new HashMap<>();        map.put(1, "a");        map.put(2, "b");        map.put(3, "c");        //得到键值对中的键,组成成一个Set集合//      Set set = map.keySet();//      System.out.println(set);        // values 所有的值组成的一个集合//      Collection col = map.values();//      System.out.println(col);        // map下的entry可以得到由所有键值对组成的集合        //里边存储的是所有的数据   (键——值组成)        Set<Map.Entry<Integer, String>> entrySet = map.entrySet();        Iterator<Map.Entry<Integer, String>> iter = entrySet.iterator();        while(iter.hasNext()){            Map.Entry<Integer,String> entry = iter.next();            System.out.println("键:"+entry.getKey());            System.out.println("值"+entry.getValue());        }

泛型

这里写图片描述

public class A<T extends Number>{    //T 类型 必须是Number类或Number类的子类    public static void main(String[] args) throws ClassNotFoundException {        A<Double> d = new A<>();        //Number 及其子类        // A<String> a = new A<>(); //报错        //String 不继承自Number        List<Number> list = new ArrayList<>();        test(list);    }       // super 传入的类型必须是Number或Number的父类    // extends 传入的类型必须是Number或Number的子类    // ?通配符,可以代指任意类型,方法的参数里    public static void test1(List<? super Number> s){  }    public static void test(List<? extends Number> s) throws ClassNotFoundException{        Class<?> a = Class.forName("java.lang.StringBuffer");        System.out.println(a.getName());    }}
public static void main(String[] args) {        //应该存储相同类型的数据        //使用泛型        //  1:泛型约束了数据存储的类型        //  2:使用get方法得到的数据类型是确定的        //  泛型的语法:<Object> 必须是引用数据类型,        //  如果存储基本数据类型,就要转成相应的包装类        List<Integer> list = new ArrayList<>();        list.add(1);        list.add(2);        int a = list.get(0);        List<Student> list2= new ArrayList<>();        list2.add(new Student(1, "张三", 10));        Student stu = list2.get(0);        HashMap<Integer, String> map = new HashMap<>();        map.put(1, "abc");    }

compareTo

@Overridepublic int compareTo(Person o) {        // TODO Auto-generated method stub        //按照id进行升序排序        // 如果对象本身的id 大于 传入的对象id,        //返回值是正数,就是升序排序        //返回值是负数,就是降序排序//      if(id>o.getId()){//          return 1;//      }else if(id==o.getId()){//          return 0;//      }//      return -1;        //按照姓名排序        //return name.compareTo(o.getName());        //按照年龄排序        if(age>o.getAge()){            return 1;        }else if(age==o.getAge()){            return 0;        }        return -1;    }
原创粉丝点击