JavaSE(HashSet-异常)

HashSet

 HashSet<String> set = new HashSet<>();
 set.add("1111");
 set.add("2222");
 set.add("JavaSE");
 set.add("MySQL");
 set.add("JDBC");
 set.add("JDBC");
 ​
 //增强for循环遍历
 for (String s : set) {
     System.out.println(s);
 }
 ​
 ​
 //迭代器遍历
 Iterator<String> it = set.iterator();
 while(it.hasNext()){
     String s = it.next();
     System.out.println(s);
 }

元素添加过程:先调用hashCode()得到一个hashCode值,通过哈希函数的转换得到在散列表中的索引。如果索引对应的桶或者槽里没有元素就直接添加,如果有元素就会出现散列冲突,处理冲突:遍历所有的桶或者树,用equals()判断不相等则添加,相等则不添加。当添加的元素达到负载因子时,要扩容。最后返回一个布尔值,指示是否添加成功。

链表 --> 树:链表长度大于8且数组长度大于64

HashMap

  1. 添加相同key值的对象会被后来的替换,即相同key的键值对只能有一个

HashMap<String, Object> map = new HashMap<>();
 HashMap<String, Object> map1 = new HashMap<>();
 map1.put("hobby",new String[] {"学习","游泳"});
 ​
 map.put("name","zs");
 map.put("age",20);
 map.put("age",10);//两个相同的key只能保留一个后来的value
 map.put("gender","男");
 map.put(null,null);
 ​
 map.putAll(map1);
 map.remove("hobby");//删除
 System.out.println(map.get("name"));//通过key获取value
 System.out.println(map.containsKey("name"));//是否包含key
 System.out.println(map.containsValue(10));//是否包含value
 System.out.println(map.size());//键值对个数
 map.clear();//清空map
 System.out.println(map.isEmpty());//键值对个数是否为0


 //遍历
 HashMap<String, Object> map = new HashMap<>();
         map.put("name","zs");
         map.put("age",20);
         map.put("gender","男");
 ​
         //获取所有的key,遍历所有的key,遍历key的过程中获取value
         Set<String> keys = map.keySet();
         for (String key : keys) {
             Object value = map.get(key);
             System.out.println(key + ":" + value);
         }
 ​
         //entrySet
         Set<Map.Entry<String, Object>> entrySet = map.entrySet();
         for (Map.Entry<String, Object> entry : entrySet){
             String k = entry.getKey();
             Object v = entry.getValue();
             System.out.println(k + ":" + v);
         }
 ​

properties

放到根目录下!!!

Exception

  1. 异常

  2. 异常体系

  • 运行时异常

    • 不需处理,可以在编码阶段注意从而避免

  • 编译时异常

    • 必须进行处理

  1. 常见异常

 outofmemoryerror
     stackoverflowerror
     arrayindexoutofboundsexception
     nullpointorexception
     arithmeticexception
     classcastexception

  1. 处理异常

  • 异常对象产生:

    • 通过JVM产生

    • 开发人员手动抛出

  • 处理:

    • 方法内部处理

       try{
           //编写可能出现的代码
       }catch(异常的类型 异常类对象的名字){//(写异常类对象)
           //可以有多个catch
           //编写异常处理/捕获的代码
       }finally{
           //不管是否出现异常都会被运行
           //非必须,可省略
       }

    • 抛给上层(调用者) --> 抛给main() --> 抛给JVM --> 程序崩溃

[修饰符] 返回值类型 方法名(参数列表) throws 异常类型1,异常类型2{

方法体;

return 返回值;

}

  1. 什么时候用?

    调用的方法在声明时有throws

  2. 自定义异常类步骤

    1)创建类

    2)继承Exception或者它的子类 -- 异常

Exception e = new Exception();

throws e;

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值