14-CollectionsStringStringBuffer

Posted macht

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了14-CollectionsStringStringBuffer相关的知识,希望对你有一定的参考价值。

Collections

是集合的工具类
主要功能有七个:

  • shuffle打乱顺序
  • swap把两个元素进行交换顺序。
  • reverse(List<?> list) 把元素组倒叙
  • copy(List m,List n)方法的使用(含义:将集合n中的元素全部复制到m中,并且覆盖相应索引的元素)。
  • rotate(List list,int m)方法的使用(含义:集合中的元素向后移m个位置,在后面被遮盖的元素循环到前面来)。
  • replaceAll(List list,Object old,Object new)方法的使用(含义:替换批定元素为某元素,若要替换的值存在刚返回true,反之返回false)。
  • binarySearch(Collection,Object)方法的使用(含义:查找指定集合中的元素,返回所查找元素的索引)。
  • 还有很多自己API查
  • 使用方法
    Collections.breverse(list);

  • 示例:

    // 打乱
    public static void f1(List<Integer> list)
      Collections.shuffle(list);
    
    
    
    // 交换
    public static void f2(List<Integer> list)
      Collections.swap(list, 0, list.size()-1);
    
    
    // 倒置
    public static void f3(List<Integer> list)
      Collections.reverse(list);
    
    
    // 填充
    public static void f4(List<Integer> list)
      Collections.fill(list, 666);
    
    
    // 拷贝,必须保证目标集合中有数据,且长度大于等于原始集合
    public static void f5(List<Integer> list)
      Collections.copy(newList,list);
    
    
    // 求最大值
    public static void f6(List<Integer> list)
      System.out.println("最大值:"+Collections.max(list));
    
    
    // 求最小值
    public static void f7(List<Integer> list)
      System.out.println("最小值:"+Collections.min(list));
    
    
    // 排序
    public static void f8()
      List<String> list = new Vector<>();
      /*list.add("qbl");
      list.add("Cxk");
      list.add("cb");
      list.add("zjl");
      list.add("lh");
      list.add("wyf");*/
      list.add("刴");
      list.add("刳");
      System.out.println(list);
      Collections.sort(list);
      System.out.println(list);
    
      /*System.out.println('\u5234');
      System.out.println('\u5233');*/
    

String

常用类
字符串的值是不可变的是共享的。如果发现两个

概述

一串字符序列,所有字符串字面值都是String对象,字符串是常量,并且是共享的。
它在字符串常量池中。

创建

  • new String();
  • new String(String);
  • new String(byte[]);
  • new String(char[]);
  • new String(byte[],int offset,int len);
  • new String(char[],int start,int end);

常用方法

  • toUpperCase()
  • endsWith()
  • startsWith()
  • equals()
  • charAt()
  • indexOf()
  • codePointAt()
  • toLowerCase()
  • lastIndexOf()
  • subString(start)
  • subString(start,end)
  • concat()
  • length()
  • getBytes()
  • toCharArray()
  • trim()
  • equalsIgnoreCase()
  • contains()
  • containsIgnoreCase()
  • isEmpty()
    String a = "abc";
    String b = "abc";
    它发现两个一样内容会把abc的地址也赋给b,减少重复创建。这个abc是在字符串常量 池中,不是在堆中。但是当一个内容改变时,地址也会改变。

    String b = new String("ab");
    创建了两个对象。一个是new的在堆中,堆中的又指向了字符串常量池中的'a'    +'b'->"ab"

    String b = new String("a"+"b");
    创建四个对象

    String s1 = new String();
    创建了一个空串

    String s2 = new String(new byte[]97,98);
    打印的是ab因为这是打印的ascii里面的字符。通过字节数组中所有元素所对应是 ASCII码组成的字符串。

    还有更多自己看

StringBuffer和StringBuildle

常用类
字符串缓冲区
注意:默认容量和实际长度length是不一样的。

创建

1、new StringBuffer();
2、new StringBuffer(String);

常用方法

1、append()
2、reverse()
3、delete()
4、deleteCharAt()
5、insert()
6、setCharAt()

与String的转换

  1. StringBuffer->String

    • 调用toString()
    • 使用String的构造函数传入StringBuffer对象
    • 空字符串的拼接
  2. String->StringBuffer

    • 使用StringBuffer的构造函数传入String对象

StringBuffer和StringBuilder的比较

StringBuffer线程安全,但性能稍差
StringBuilder线程不安全,但速度快

使用:
多线程下使用StringBuffer,否则使用StringBuilder

正则表达式

概念:正则表达式本身是一个字符串,它专门用于对字符串数据进行操作

匹配

a.matches(b):以正则b去匹配字符串a,并返回是否匹配的布尔值

替换

a.replaceAll(b,c):在a字符串中,找到正则b匹配的内容,用c替换

切割

a.split(b):在字符串a中以正则b进行切割,并返回切割后的字符串数组

查询

find():根据正则判断是否有匹配的内容,并返回布尔值
group():获取匹配的内容

String msg = "jin tian shi zhou wu , zhen kai xin!!!";
String regex = "\\b[a-zA-Z]3\\b";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(msg);
while(m.find())
    System.out.println(m.group());

额外

  • 在一个类中间写的类属于类中的成员,内部类,内部接口。.class文件和文件名都会以类名$内部类/接口名默认。调用的时候可以作为其类的成员变量来调用。类名.内部接口名
  • 并且调用内部类,内部接口要大写。比如Map.Entry<String, String>这样。

以上是关于14-CollectionsStringStringBuffer的主要内容,如果未能解决你的问题,请参考以下文章