ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java集合框架(五)-Collections 和 泛型

2022-06-21 19:33:50  阅读:164  来源: 互联网

标签:Java name age list sex 集合 Collections Student 泛型


1、Collections

sort(List list) 自然升序排序
reverse(List<?> list) 集合反转
binarySearch(List<? extends Comparable<? super T>> list, T key) 二分查找(要求集合有序)
addAll(Collection<? extends E> c) 从集合中添加批量元素
max(Collection<? extends T> coll) 集合最大元素
min(Collection<? extends T> coll) 集合最小元素

1.1 sort(List list)

自然升序;

1.2 reverse(List<?> list)

集合反转;

1.3 binarySearch(List<? extends Comparable<? super T>> list, T key)

二分查找(要求集合有序);

1.4 addAll(Collection<? extends E> c)

从集合中添加批量元素;

1.5 max(Collection<? extends T> coll)

集合中最大元素;

1.6 min(Collection<? extends T> coll)

集合中最小元素;

1.7 同步控制

Collections工具类中提供了多个synchronizedXxx方法,该方法返回指定集合对象对应的同步对象,从而解决多线程并发访问集合时线程的安全问题。HashSet、ArrayList、HashMap都是线程不安全的,如果需要考虑同步,则使用这些方法。这些方法主要有:synchronizedSet、synchronizedSortedSet、synchronizedList、synchronizedMap、synchronizedSortedMap。

2、泛型

泛型就相当于是类型模板,指定什么样的类型,对应的值就是什么类型,通常泛型给你参数T,E,K,V等,推荐使用T(Type);

自定义泛型举例

Studnet类

public class Student<T1,T2,T3>{
    private T1 name;

    private T2 age;

    private T3 sex;
    
    public Student() {
    }

    public Student(T1 name, T2 age, T3 sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
    
    //省略get,set方法
    
    @Override
    public String toString() {
        return "Student{" +
                "name=" + name +
                ", age=" + age +
                ", sex=" + sex +
                '}';
    }
    
}

测试

public class TestStudnet {
    public static void main(String[] args) {
        //在实例化的时候可以对类型进行约束
        Student<String, Integer, Character> student = new Student<>();
        student.setName("二狗");
        student.setAge(18);
        student.setSex('男');

        System.out.println(student);
    }
}

运行结果

Student{name=二狗, age=18, sex=男}

标签:Java,name,age,list,sex,集合,Collections,Student,泛型
来源: https://www.cnblogs.com/xiaoqigui/p/16397999.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有