一.Arraylist
Arraylist是Java集合框架的重要类,它继承于AbstractList,实现了List接口,是一个长度可变的集合,提供了增删改查的功能。
ArrayList的底层是基于数组来实现容量大小动态变化的。与普通数组的区别就是没有固定的大小限制。
练习:
package com.company.arraylist;
import java.util.ArrayList;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList<String> arr = new ArrayList<String>();//初始化
//String: 泛型数据类型,用于设置 arr 的数据类型,只能为引用数据类型。
//arr: 对象名。
arr.add("Tom");//添加元素
arr.add("Bob");
arr.add("Marry");
System.out.println(arr);
arr.add(1,"jack");//指定索引添加指定元素
System.out.println(arr);
arr.remove("Tom");
System.out.println(arr);
arr.remove(0);
System.out.println(arr);
arr.set(0,"James");//修改指定索引处的元素
System.out.println(arr);
System.out.println(arr.size());//.size计算元素的数量
}
}
结果打印输出:
利用for进行数组列表中元素的迭代
@Test
public void Test(){
ArrayList<String> A = new ArrayList<String>();
A.add("Tom");
A.add("Bob");
A.add("Marry");
int i = 0;
for (i = 0;i<A.size();i++){
System.out.println(A.get(i));//利用for来迭代数组列表的元素
}
}
结果:
二.String类的方法练习
@Test
public void contentEquals2(){
String name1 = "dawang";
String name2 = "xiaowang";
CharSequence cs = "dawang";
//10.contentEquals(CharSequence cs)方法与指定字符串CharSequence比较。
// 其结果是true,当且仅当此字符串表示char值作为指定的顺序的相同。
System.out.println(name1.contentEquals(cs));
System.out.println(name2.contentEquals(cs));
}
@Test
public void equalsIgnoreCase(){
String A = "dawang";
String B = "DaWang";
String C = "xiaowang";
//11.equalsIgnoreCase()比较两个字符串的字符是否相等,此方法忽略大小写,只比较字符
System.out.println(A.equalsIgnoreCase(B));
System.out.println(A.equalsIgnoreCase(C));
System.out.println(B.equalsIgnoreCase(C));
}
@Test
public void compareTo(){
String A = "abcd";
String B = "htbd";
String C = "ysar";
//12.CompareTo()方法按字母顺序逐个比较字符大小,将字符转换成ASCII码后进行比较,区分字母大小写。
//1.对于单个字符,返还两个字符的asc码的差值
//2.参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值 。
//3.两字符串长度不一,参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值 。
int n = A.compareTo(B);
if(n>0){
System.out.println("字符串差值为"+n);
System.out.println("字符串"+A+"大于字符串"+B);
}else if(n<0){
System.out.println("字符串差值为"+n);
System.out.println("字符串"+A+"小于字符串"+B);
}
}
@Test
public void compareToIgnoreCase(){
String A = "abcd";
String B = "XdYZ";
String C = "jyDm";
//13.compareToIgnoreCase()按字典比较两个字符串,不区分大小写。
//1.对于单个字符,返还两个字符的asc码的差值
//2.参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值 。
//3.两字符串长度不一,参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值 。
int n = A.compareToIgnoreCase(B);
if(n>0){
System.out.println("字符串差值为"+n);
System.out.println("字符串"+A+"大于字符串"+B);
}else if(n<0){
System.out.println("字符串差值为"+n);
System.out.println("字符串"+A+"小于字符串"+B);
}
}
@Test
public void regionMatches(){
String A = "www.baidu.com";
String B = "www.qq.com";
String C = "WWW.weixin.com";
//14.regionMatches()第一个参数代表你要比较的s1字符串的起始位置,第二个表示要和字符串s2比较
// 第三个参数表示要从s2的哪个位置开始比较,第四个参数代表要比较几位。
System.out.println("A和B比较:"+A.regionMatches(0,B,0,3));//A的0索引位‘W’,跟B比较,从B的第0索引位'W'开始,比较3位
System.out.println("B和C比较:"+B.regionMatches(0,C,3,3));
System.out.println("A和C比较:"+C.regionMatches(true,0,C,0,3));//加上true比较时不区分大小写
}
@Test
public void starsWith(){
String A = "Hello,my name is Tom";
//15.startsWith() 方法用于检测字符串是否以指定的前缀开始。
System.out.println(A.startsWith("Hello",0));
System.out.println(A.startsWith("my name is Tom",0));
System.out.println(A.startsWith("my name is Tom",6));
}
@Test
public void endWith(){
String A = "I like play basketball";
//16.endWith()方法用于检测字符串是否以指定后缀结束.
System.out.println(A.endsWith("play"));
System.out.println(A.endsWith("basketball"));
}
@Test
public void indexOf(){
String name = "zhangsanAndlisan";
//17.indexof()
//1、 indexOf(String str): 返回指定字符str在字符串中(方法调用者)第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1。
//2、indexOf(String str, int index): 返回从 index 位置开始查找指定字符str在字符串中第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1。
System.out.println(name.indexOf("san"));
System.out.println(name.indexOf("san",6));
}