java泛型格式map_JAVA泛型、Set集合、HashMap、异常处理

(一)泛型

定义泛型:能够使多种数据类型实现功能,避免转换

泛型分类:

1.泛型类

2.泛型方法

泛型数组

具体应用:

1.定义一个泛型类和泛型方法:

class GenericTest{

int age;

T a1;

T a2;

//泛型方法

public void test(T a1,T a2){

this.a1 = a1;

this.a2 = a2;

System.out.println(a1.equals(a2));

}

}

(二)Set集合

特点:

1.集合里面对象不能重复 如果重复添加不进去内部使用HashMap来实现 键值对 键key不能重复 如何实现?每添加一个对象计算这个对象的hash值(整数)如果对象相同hash值也相同

2.集合是无序的 添加的顺序和存储的顺序无关 使用了默认排序

HashSet names = new HashSet<>();

names.add("jack" );

//names.add("jack" ); --->就不会被添加进去

names.add("merry" );

names.add("abc" );

System.out.println(names);

33fc9b7e4f64

效果图.png

可见重复的元素并未添加进去,并且会根据默认的排序方式进行排序

(三)可以排序的集合 Treeset

方法:treeset

方式一:采用匿名类

TreeSet score = new TreeSet<>(new Comparator() {

@Override

public int compare(Person person, Person t1) {

return person.compareTo(t1);

}

});

方式二:采用Lambda表达式

TreeSet score = new TreeSet<>((Person p1,Person p2)->p1.compareTo(p2));

Person p1 = new Person("jack",20);

Person p2 = new Person("jack",30);

Person p3 = new Person("rose",20);

score.add(p1);

score.add(p2);

score.add(p3);

System.out.println(score);

(四)HashMap

存储数据的特点:键key-值value对

key不能重复 可以是任意对象类型 通常使用字符串String

1.添加对象:

HashMap score =new HashMap<>();

score.put("Chinese",89);

score.put("Math",94);

score.put("English",92);

如果键相同,代表更改对应的值

score.put("Chinese",91);

System.out.println(score);

key:Chinese的值改变了

33fc9b7e4f64

效果图.png

2.获取键值对的个数

score.size();

3.获取所有的key

System.out.println(score.keySet());

4.获取所有的值(value)

System.out.println(score.values());

5.获取Entry键值对

System.out.println(score.entrySet());

6.获取一个键对应的值

System.out.println(score.get("English"));

7.键值对的遍历

方式一:通过遍历key来得到每一个key对应的值

for(String key:score.keySet()){

//通过key得到值

int s =score.get(key);

System.out.println("key"+key+"value"+s);

}

获取到每一个键值对

33fc9b7e4f64

效果图.png

方式二:通过Entryset 得到Entry对象的集合

一个Entry管理一个键值对 getKey getValue

Set> entrys =score.entrySet();

for (Map.Entry entry:entrys){

//的到Entry对应的key

String key =(String) entry.getKey();

//获取entry对应的值

Integer value = (Integer) entry.getValue();

}

(五)异常处理

作用:处理运行过程中出现的不可控的错误 使程序更健壮

异常处理方式一:try------catch----finally

try{

执行代码 可能会出现异常

一旦出现异常 系统自动为我们创建一个异常类 并抛出

}catch (ArithmeticException e){

如果需要自己处理异常就catch

} catch (FileNotFoundException e) {

如果有多个异常可以使用多个catch来捕获

如果有多个异常 catch的顺序是从小到大

}finally{

不管有没有异常finally都会被执行

资源回收 比如:网络链接 数据库链接 I\O流

}

需要注意的是:如果异常出现后面的代码将不执行所以try代码块不要抓太多代码

异常处理方式二:使用throws抛出异常

class TException {

public static void test() throws FileNotFoundException{

FileReader fr = new FileReader("");

}

}

异常处理方式三:当特殊情况出现 自己可以选择使用throw抛出异常

public static void test3()throws PXDException{

throw new PXDException("自己的异常类:无所作为");

}

33fc9b7e4f64

效果图.png

异常处理方式四:自定义异常

1.需要创建一个继承Exception的类

2.提供一个无参构造方法

3.提供一个有参构造方法 参数是一个字符串

class PXDException extends Exception{

//提供一个无参构造方法

public PXDException(){}

//提供一个有参构造方法 参数是一个字符串

public PXDException(String desc){

super(desc);

}

}

(六)今日小结:

每天所学很零碎,但是通过这样系统的整理之后,就感觉有了许多头绪,也舒服多了。可是在具体运用上肯定还不行,缺乏练习,再过一段实际完完全全进入实战,心里还是很担心的,感觉记不住啊,真的太多东西了,不过还是要坚持下去,总会出效果的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值