栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA学习笔记10 TreeSet

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA学习笔记10 TreeSet

import java.util.TreeSet;

public class TreeSetDemo {
    public static void main(String[] args) {
        TreeSet ts=new TreeSet();

        ts.add(10);
        ts.add(40);
        ts.add(30);
        ts.add(20);
        ts.add(50);

        ts.add(30);

        for (Integer i:ts){
            System.out.println(i);
        }
    }
}

执行结果:
10
20
30
40
50

泛型的好处:
public class GenericDemo {
    public static void main(String[] args) {
        Collection c=new ArrayList();
        c.add(11);
        c.add("hello");
        c.add("world");

        Iterator it=c.iterator();
        while (it.hasNext()){
            String s=(String)it.next();
            System.out.println(s);
        }
    }
}
执行结果:
Exception in thread "main" java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.String (java.lang.Integer and java.lang.String are in module java.base of loader 'bootstrap')
	at General.GenericDemo.main(GenericDemo.java:16)

原因是这个集合中既有11(integer类型)又有“hello”(String类型),那么在 String s=(String)it.next();这一步中就会报错。
而如果使用泛型:
就会在执行之前,编译器中就报错,相当于是设定了这个集合collection中只能存储String类型,存别的类型就会报错。并且在后面也不需要强制类型转换了。

泛型类使用的好处

使用泛型类改进之后,代码量就大大减少了,传入的参数是什么类型打印的结果就是什么类型。
如:

public class GenericDemo02 {
    public static void main(String[] args) {
//        Generic02 g=new Generic02();
//        g.show("林青霞");
//        g.show(11);
//        g.show(true);

//        Generic02 g1=new Generic02();
//        g1.show("张柏芝");

        Generic02 g=new Generic02() ;
        g.show("林青霞");
        g.show(30);
        g.show(true);
    }
}

执行结果:
林青霞
30
true

例如:
相当于就是把接口弄成了泛型的一种接口,使得实现这个接口的实现类也必须要继承/重写这个泛型和泛型方法。

可变参数

如果要实现求sum中有5,6,7…n个参数的话,那么肯定不能写完n种参数的sum函数。这里就可以使用可变参数。

public class ArgsDemo {
    public static void main(String[] args) {
        sum(1,2,4,5,56,3,2);
    }
    public static int sum(int ...a){
        System.out.println(a);
        return  0;
    }
}
执行结果:
[I@43a25848

由执行结果中的"["看出,这个a实际上是一个数组,里面存储的是传进去的参数。

package Args;

public class ArgsDemo {
    public static void main(String[] args) {
        System.out.println(sum(1,2,4,5,56,3,2));

    }
    public static int sum(int ...a){
//        System.out.println(a);
//        return  0;
        int sum=0;
        for (int i:a){
            sum+=i;
        }
        return sum;
    }
}

执行结果:
73

还有一点需要注意的是,如果方法的参数既有可变参数又有固定参数,那么可变参数必须放到最后否则会报错。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/532301.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号