Java——集合框架之Set&HashSet,HashMap,泛型,compareTo
2021/6/1 12:23:56
本文主要是介绍Java——集合框架之Set&HashSet,HashMap,泛型,compareTo,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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
@Override public 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; }
这篇关于Java——集合框架之Set&HashSet,HashMap,泛型,compareTo的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略