zoukankan      html  css  js  c++  java
  • java_day18_集合框架map和list

    集合框架map,List和set

    一,UDP协议

      1.UDP协议使用DatagramSocket,ds对象可以用来接收和发送数据,不涉及IO流

      2.准备接收数据的时候需要指定端口号

      3.UDP协议不适合传递大数据,适合小而频繁的数据,若接收长度小于发送长度会出现丢包

      4.接发数据代码

        DatagramSocket ds = newDatagramSocket(7788);//绑定端口

        byte[] buf = new byte[1024];接收数组长度1024

        DatagramPacket packet = new  DatagramPacket(buf,buf.length);.//创建数据包对象

        ds.receive(packet);//接收数据包

        String data = new String(packet.getData(),0,packet.getLength());//由byte转为字符串String

     

        DatagramSocket ds = new DatagramSocket();//创建DatagramSocket对象

        String s = "Hello World";//定义一个字符串

        byte[] buf = s.getByte();//接收字节数组长度为1024

        DatagramPacket dp = new DatagramPacket(buf,buf.length,new InetSocketAddress("127.0.0.1",7788);//发送的数据包,参数需要有数据,数据长度,及ip和端口号

        ds.send(dp);//发送数据

    二,集合set

      1.set中不能够添加重复性的数据.

      2.set没有办法根据下标取数据,即没有办法取出指定数据,要想使用set中的数据只能遍历

      3.set里面的数据是没有顺序可言的,无论你以什么样的顺序,向set中添加数据遍历取出的顺序都是不一定和添加的顺序一样.

      4.Hashcode:元素的哈希值是通过元素的hashcode方法 来获取的, HashSet首先判断两个元素的哈希值,如果哈希值一样,接着会比较equals方法 如果 equls结果为true HashSet就视为同一个元素。如果equals false就不是同一个元素.在IDEA中使用快捷键cmd+n,选择equals()&hashCode().把判断的属性勾选上即可.

      5.迭代器

        Set<Integer> set = new hashSet<>();//创建集合对象

        set.add(1); //添加元素

        set.add(2);

        Iterator<Integer> iterator = set.iterator();//将一个集合对象转为迭代器

        while(iterator.hasNext()){   //如果没有元素可取则iterator.hasNext()返回值为false,停止循环

          Integer i = iterator.next();//取出下一个元素

          if(i%2== 0){  //删除数组中的偶数

            iterator.remove();//用迭代器删除数据,不会涉及到索引的问题,安全行高

          }

     

        }

     

    1.   ---| Itreable      接口 实现该接口可以使用增强for循环  
    2.               ---| Collection     描述所有集合共性的接口  
    3.                     ---| List接口     可以有重复元素的集合  
    4.                            ---| ArrayList     
    5.                            ---|  LinkedList  
    6.                   ---| Set接口      不可以有重复元素的集合  
    7.                            ---| HashSet  线程不安全,存取速度快。底层是以哈希表实现的。

    三,构造代码块

      1. 在类中直接用{}括起来的代码,叫做构造代码块.常用于初始化.

      2. 只在new对象的时候会执行,并且创建一次对象,就会执行一次

      3.    代码:

          public static void main(String[] args){

            show(new HashSet<Integer>(){{

              add(1);

              add(2);

            }});

          }

          public static void show(Set<Integer> set){

            for(Integer integer : set){

              System.out.prinln(integer);

            }

          }

    四,集合:map接口中键和值一一映射. 可以通过键来获取值。map不具有可迭代性

      1.HashMap是一种key-value的数据模型,HashMap<K,V>

      2.遍历map的代码:

        Map<Integer String> map = new HashMap<>();

        map.put(1,"张三");//添加键值对

        map.put(2,"李四");//key是惟一的

        map.put(3,"张三");//value可以对应多个key

        map.put(1,"王五");//将key为1的键重新赋值value为王五

        Set<Integer> integers = map.keySet();//将key集合到set,方可进行遍历

        for(Integer integer : Integers){

          String value = map.get(Integer);//通过键key取值value

        }

  • 相关阅读:
    如何挑选适合的前端框架
    为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
    Spring框架文档与API(4.3.6版本)
    Spring Framework Ecosystem – Introduction to Spring Projects
    What is the difference between J2EE and Spring
    WPS添加页码不是从首页开始
    C语言文件方式输入与输出(最简洁方便实用的一种方式)
    hibernate---注解--CascadeType属性
    hibernate------java-delete-insert-update
    hibernate---注释 ----(购物:人顾客售货员boss)
  • 原文地址:https://www.cnblogs.com/memo-song/p/8921541.html
Copyright © 2011-2022 走看看