首页 > 其他分享 >集合框架和泛型

集合框架和泛型

时间:2023-09-22 16:44:15浏览次数:36  
标签:map String 框架 System 集合 泛型 println public out

1、set

  1. HashSet不重复,无序。
  2. TreeSet不重复,会自动排序,升序。
  3. import java.util.TreeSet;
    import java.util.Set;
    public class Tree {
    public static void main(String[] args) {
    Set set=new TreeSet<>();
    set.add("GG");
    set.add("gg");
    set.add("ee");
    set.add("EE");
    System.out.println(set);

    }
    }

     

2、map集合 ⽆序,键唯⼀

  1. 存的是键值对
  2. package com.map;
    
    import java.util.*;
    
    public class MapTest {
        public static void main(String[] args) {
            //Map集合
            Map map = new HashMap();
            //添加
            map.put("CN","中华人民共和国");
            map.put("CN","中华人民共和国");
            map.put("US","美利坚合众国");
            map.put("RU","俄罗斯联邦");
            //显示无序,唯一
            System.out.println(map);
            System.out.println(map.get("CN"));
            //根据键取值
            String key ="CN";
            Object o = map.get(key);
            String str =(String) o;
            System.out.println(key+"对应的国家是:"+str);
            //获取长度
            int size = map.size();
            System.out.println("Map共有"+size+"组数据");
            //判断是否存在指定的键(key)
            boolean b = map.containsKey(key);
            System.out.println("Map中包含"+key+"吗?:"+b);
            String value = "中华人民共和国";
            boolean b1 = map.containsValue(value);
            System.out.println("Map中包含"+value+"吗?:"+b1);
            //获取所有键(key)
            Set keySet = map.keySet();
            System.out.println(keySet);
            //获取所有值(value)
            Collection values = map.values();
            System.out.println(values);
            //清空
    //        map.clear();
    //        System.out.println(map);
            //遍历
            System.out.println("========================");
            keySet = map.keySet();
            for (Object o1 : keySet) {
                String key2 = (String) o1;
                String value2=(String)map.get(key2);
                System.out.println(key2+"==>"+value2);
            }
            System.out.println("========================");
            keySet = map.keySet();
            System.out.println(keySet);
            Iterator iterator = keySet.iterator();
            while (iterator.hasNext()) {
                String key2 = (String)iterator.next();
                String value2 = (String)map.get(key2);
                System.out.println(key2+"==>"+value2);
            }
            System.out.println("=========================");
            Set set = map.entrySet();
            System.out.println(set);
            for (Object o2 : set) {
                Map.Entry entry= (Map.Entry)o2;
                Object key2 = entry.getKey();
                Object value2 = entry.getValue();
                System.out.println(key2+"==>"+value2);
            }
        }
    
    }

     

3、泛型

  1. 通过泛型可以避免数据向下转型时的异常问题。
  2.  常⽤泛型 List<E> Set<E> Map<K,V> Iterator<E>。
  3. 泛型中指定类型不能是基本数据类型,⽽只能是引⽤数据类型。

4、Collections

  1. package com.set;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class SetTest2 {
        public static void main(String[] args) {
            List<String> list = new ArrayList<String>();
            list.add("苹果");
            list.add("橘子");
            list.add("香蕉");
            list.add("西瓜");
            //排序
            System.out.println("排序前" + list);
            Collections.sort(list);
            System.out.println("排序后" + list);
            //查找 前提 必须是排序的升序的
            int banana = Collections.binarySearch(list, "香蕉");
            System.out.println("index=" + banana);
            //找最大值
            String max = Collections.max(list);
            System.out.println(list + "中最大值是:" + max);
            //最小值
            String min = Collections.min(list);
            System.out.println(list + "中最大值是:" + min);
            //反转
            System.out.println("======================");
            Collections.reverse(list);
            System.out.println(list);
        }
    }

     

5、compareTo

  1. 对于⾃定义的类型进⾏排序,必须要implementsComparable<E> 并重写 public int compareTo(E e),此⽅法有返回值。
  2. 这个⽅法有返回值的意义。
    1. 返回0 表⽰两个对象相待。
    2. 返回正数 表⽰当前对象⼤于 参数对象。
    3. 返回负数 表⽰当前对象⼩于 参数对象。
  3. package com.student;
    
    public class Student implements Comparable<Student>{
        private String name;
        private int age;
    
        public Student() {
        }
    
        public Student(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        @Override
        public String toString() {
            return "Student{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    
        @Override
        public int compareTo(Student o) {
            //按升序排
            return this.age-o.age;
            //按降序排 return -(this.age-o.age);
            //return o.age-this.age;
        }
    }
    package com.student;
    
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.List;
    
    public class StudentTest {
        public static void main(String[] args) {
            Student s1= new Student("未来世界",10);
            Student s2= new Student("文明古国",15);
            Student s3= new Student("选择英雄",18);
            Student s4= new Student("傻人傻福",20);
            Student s5= new Student("逼上梁山",23);
            List<Student> studentList= Arrays.asList(s1,s2,s3,s4,s5);
            System.out.println("排序前:"+studentList);
            Collections.sort(studentList);
            System.out.println("排序后"+studentList);
    
            //降序排
            Collections.reverse(studentList);
            System.out.println("排序后"+studentList);
        }
    }

     

标签:map,String,框架,System,集合,泛型,println,public,out
From: https://www.cnblogs.com/hsk991213/p/17722805.html

相关文章

  • 一个简易的ORM框架的实现(二)
    框架目标什么是框架,框架能做到什么?把一个方向的技术研发做封装,具备通用性,让使用框架的开发者用起来很轻松。属性:通用性健壮性稳定性扩展性高性能组件化跨平台从零开始-搭建框架建立项目主键查询功能开发绑定实体一步一步的给大家推导:一边写一边测试从零开始-......
  • JAVA中三种I/O框架——BIO、NIO、AIO
    一、BIO(BlockingI/O)BIO,同步阻塞IO模型,应用程序发起系统调用后会一直等待数据的请求,直至内核从磁盘获取到数据并拷贝到用户空间;在一般的场景中,多线程模型下的BIO是成本较低、收益较高的方式。但是,如果在高并发的场景下,过多的创建线程,会严重占据系统资源,降低系统对外界响应效率......
  • vue3 将文件集合下载后导出zip文件
    //注意:文件的url一定是服务器上的地址如http:xxxx//先下载npmijszipfile-saver//封装importJSZipfrom'jszip'importFileSaverfrom'file-saver'constgetFile=(url)=>{returnnewPromise((resolve,reject)=>{//通过请求获取文件blob格式......
  • OpenHarmony应用开发—ArkUI组件集合
    介绍本示例为ArkUI中组件、通用、动画、全局方法的集合。效果预览 使用说明:1.点击组件、通用、动画、全局方法四个按钮或左右滑动切换不同视图。2.点击二级导航(如通用属性、通用事件等),若存在三级导航则展开三级导航(如Border 边框、点击事件等);若不存在三级导航,则跳转......
  • 【Python深度学习】深度学习中框架和模型的区别
        深度学习是人工智能领域的一股强大力量,它的快速发展离不开深度学习框架和模型的进步。本文将介绍深度学习框架和模型的基本概念、它们之间的联系与区别,以及如何根据项目需求选择合适的框架和模型。一、深度学习框架        深度学习框架是进行深度学习研......
  • Python集合
    #集合是一个无序的不重复元素序列numset={1,2,2,3}#如果存在重复元素保留一个print(numset)sqared={x**2forxin[1,2,3]}#也支持集合推导式print(sqared)set1=set([1,2,3])#从列表和元组通过set()都可转集合print(set1)set1=set(range(1,5))print(set1)s......
  • 高中数学 - 集合相关数学符号备忘
    元素与集合集合一般用A,B,C,D等这样的大写字母表示。常见的数集:C-复数集,R-实数集, N-非负整数集, Q-有理数集,Z-整数集集合元素一般用a,b,c,d等这样的小写字母表示元素a属于集合A,用a∈A表示元素a不属于集合A,用a∉A表示 集合运算两个集合的交集:∩两个集合的并集:......
  • 自动化测试:fixture学得好,Pytest测试框架用到老
    From: https://mp.weixin.qq.com/s/agoipUlkQj3jaZ6cZc_80Q------------------------------------------------------------------------------------在pytest中,fixture是一种非常有用的特性,它允许我们在测试函数中注入数据或状态,以便进行测试。而参数化则是fixture的一个特性,......
  • Swift中发布-订阅框架Combine的使用
    Combine简介Combine是一个苹果用来处理事件的新的响应式框架,支持iOS13及以上版本。你可以使用Combine去统一和简化在处理类似于target-action,delegate,kvo等事情的代码。iOS目前已经有第三方的响应式框架了,如:RxSwift、ReactiveCocoa,但是苹果现在发布了自己的新的框架。它提供......
  • 如何用laravel框架封装微信支付和支付宝支付?
    在Laravel框架中封装微信支付和支付宝支付通常需要使用相应的扩展包(Packages),这些扩展包可以帮助您与微信支付和支付宝支付的API进行交互,简化了整个支付集成过程。以下是在Laravel中封装微信支付和支付宝支付的一般步骤:封装微信支付:安装扩展包:首先,您需要在Laravel项目中安装适用于微......