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的转换
StringBuffer->String
- 调用toString()
- 使用String的构造函数传入StringBuffer对象
- 空字符串的拼接
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的主要内容,如果未能解决你的问题,请参考以下文章