• JAVA随笔3(集合框架,流)


    Collection接口-->>add();remove;ifEmpty();size()

                                 Set(静态不能实例)-->>无序不重复

                                                       HashSet 无序保证不重复

                                                       LinkedHashSet 和存储一样的排序

                                                        TreeSet 即树排序,根据比较后的值来排序,也可以创建比较器来自定义排序内部自己比较,1为正序,-1位逆序,0位无序

                                                       class ComparatorByName implements Comparator

                                                 {

                                                                      public int compare(String s1,String s2)

                                                                       {  

                                                                                   return 1,-1,0;  }

                                                     }

                                      List(不能实例)  -->>   set(index,element)修改数据 ;有序可重复List体系的都可以操作角标   toArray()集合转换为数组

                                                       ArrayList    非同步,

                                                       LinkedList   非同步addFirst();getFirst()获取但不移除列表的第一个元素;removeFirst()获取但移除列表的第一个元素;双向链表结构

                                                         Vector      同步

                                                        Stack

    Map (不能实例) -->>键值对存储,即映射

                         put();clear();remove();containsKey();containsValue();isEmpty();get(key);size()键的个数

                        HashMap       

                        LinkedHashMap

                        TreeMap          底层原理为红黑树

                        HashTable -->>Properties集合 同步的

    Collections接口-->>工具类,里面的方法都是静态的

                     sort();swap();binarySearch()只能对List其作用;reverseOrder(),reverse()List集合的反转

                           Arrays类

                                    asList()数组转换为集合

                                     toString()数组的输出

    迭代器:

    Map的迭代有三种

    将键和值放入Set集合中,以键迭代 Iterator it = ((Set)map.ksySet()).iterator()

    以值迭代((Collection) map.valus()).iterator()

    以键和值迭代 ((Set)<Map.Entry<element,element>>map.entrySet()).iterator()

    Properties集合中的键和值都是字符串类型的集合中的数据可以保存到流中,或者从流中获取

    Proprties p = new Properties();

    p.setProperty()

    Set<name> names = p.stringPropertyNames();取出所有元素

    FileOutputStream fos = new FileOutputStream("File.txt");

    p.store(fos,"name+age");为文件写入方法

    f0s,close()

    FileInputStream fis = new FileInputStream("File.txt");

    p.load(fis);为读取配置文件的方法

    fis.close()

    BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(""),"utf-8"));

    BufferedWriter bw = new BufferedWriter(new OutputStreamReader(new FileOutputStream(""),"utf-8"));

    字节字符流的转换

    Scoket流

    UDP无连接传输,有时会数据丢失

    TCP有连接传输,3次握手连接,4次握手分开。每次都是客户端先发送请求,最后服务端关闭

    new DatagramSocket(10000).recieve(new DatagramPacket(new byte[],new byte[].length)()))  为阻塞式

    阻塞式即为每个进程不停的轮询,CPU不停的线程切换;非阻塞式即给这些线程添加一个专门的管理线程,外部环境好了,这个线程就会告诉某个适合的进程,你可以去占用CPU了

    new DatagramPacket().getAddress.getHostAddress()

    getPort();getData()等方法获取客户端提交过来的数据包中的数据

    new DatagramSocket().send(new DatagramSocket(str.getBytes(),0,str.getBytes().length(),InetAddress.getByName(IP),PORT));这是客户端

    TCP:-->>

    SERVER:-->>

    Socket socket = new ServerSocket(10000).accept();

    new ServerSocket(10000).accept().getInputStream()获取Socket读取流,可用缓冲区包装

    new PrintWriter(socket.getOutputStream().true);获取socket的输出流,true很精髓,自动输出

    Client:-->>

    Socket socket = new Socket("Server_ip","PORT");

    和服务端的差不多,需要客户端和服务端交互,互相确认对方是否收到数据。

    服务端和客户端需要将数据写入文件夹中,这就用到了File对象

    File:-->>

    getName();getAbsolutePath();length();getPath();

    mkdir();mkdirs()

    exsits(),isFile(),isDirectory();判断boolean型

    suffix后缀名implements FilenameFileter

    listFile()返回某个目录下的所有文件和目录的绝对路径,File数组

    list()返回某个目录下的所有文件和目录的文件名,String 数组

    分割文件(控制缓冲区大小)与合并文件

     ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
            for(int i = 0; i<partfile.length;i++)
            {
                al.add(new FileInputStream(partfile[i]));
            }
            
       每一份文件都需要一个流关联,合并为一个流

    Enumeration<FileInputStream> enums = Collections.enumeration(al);
    SequenceInputStream sis = new SequenceInputStream(enums);

  • 相关阅读:
    IM,游戏服务端 tcp 框架整理
    IronPython初体验和实战集合等类型转换和类型匹配
    C# 控件包
    ORM框架系列
    C# Excel或表格插件
    vue之修饰符
    vue之单表输入绑定
    vue之计算属性和侦听器
    vue之指令系统
    vue之用法
  • 原文地址:https://www.cnblogs.com/GlazedCat/p/6539409.html
Copyright © 2020-2023  润新知