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

Java复习

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

Java复习

异常

集合

(其中单列、双列理解为:单独数据,数据对)

  • List允许集合元素重复,作为接口,通过其子类ArrayList,linkedList实例化
    ArrayList 类似数组,查找快,增删元素慢
    linkedList类似链表,查找慢,增删快 ,实现了List和Deque接口,Deque是支持两端元素插入和移除的线性集合,名称deque是“双端队列”的缩写,通常发音为“deck”。(做算法题要用到栈或者队列工具,都采用Deque)

  • Set不允许集合元素重复,作为接口,通过其子类HashSet、TreeSet 实例化。
    HashSet 底层数据结构是哈希表,没有带索引的方法,集合中元素顺序不作保证,但保证不含重复元素。不能使用普通for循环遍历,但可以通过迭代器或者增强for遍历。HashSet保证元素唯一性是通过 hashCode() 和 equals() 方法实现的。

    linkedHashSet 可以保证元素唯一并有序(指按存储顺序排序)

    TreeSet 中元素唯一且有序,但不是根据元素存储顺序,而是根据构造方法的比较器进行排序,无参构造默认按元素自然排序进行排序。
    自然排序:就是让元素所属的类实现Comparable< E >接口,重写compareTo(T o)方法,重写方法时要注意排序规则的主要和次要条件。

//无参构造,TreeSet内元素所属类实现Comparable接口,并重写compareTo方法
@Override
public int compareTo(Student stu) {
//按年龄升序排列,年龄相同按姓名字典序升序
    int num = this.age - stu.age;  
    num = num == 0 ? this.name.compareTo(stu.name) : num;
    return num;
}

//带参构造TreeSet
TreeSet set = new TreeSet<>(new Comparator() {//比较器
     @Override
     public int compare(Student o1, Student o2) {
         int num = o1.getAge() - o2.getAge();
         num = num == 0 ? o1.getName().compareTo(o2.getName()): num;
         return num;
     }
});
  • Map ( Interface Map)
    将键映射到值;不能包含重复的键;每个键可以映射到最多一个值。
    具体的实现类HashMap,常用方法可在帮助文档中查看。

  • 可变参数
    可变参数指的是参数个数可变,用 数据类型 + … 的形式定义参数,需要注意的是,当方法中包含可变参数和其他参数时,要把其他参数写在前面。

public class Demo {
    public static void main(String[] args) {
        System.out.println(sum(1,2,1,3,1));
    }

    public static int sum(int... a) { //a其实是一个数组
        int sum = 0;
//        for (int i = 0; i < a.length; i++) {//这样写也是可以的
//            sum += a[i];
//        }
        for(int i : a) {
            sum += i;
        }
        return sum;
    }
    
    public int test1(int a, int... b) { 
        return 0;
    }
    
    public int test2(int... a, int b) { //编译错误
        return 0;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340534.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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