在实际开发中,我们常用API(Application Programming Interface,应用程序编程接口)进行开发,API就是别人写好的一段程序。
零、包
包是用来分门别类地管理不同程序的,类似于文件夹,建包有利于程序的管理和维护,调包使用import,同一个包下的程序,可以直接访问,自己程序中调用Java提供的程序,必须要先调包,调用Java.lang包下API不需要调包。程序名一样的情况下,默认只能调用一个程序,另一个程序必须用包名和类名进行访问。
一、String
String就是字符串,在Java.lang包下。直接打印String时不会打印地址,而是人性化地打印数据。
1、构造方法
String name1="abc";
String name2=new String("abc");
char[] chars={'a','b','c'};
String name3=new String(chars);
byte[] bytes={97,98,99};
String name4=new String(bytes);
2、操作方法
(1)获取长度
String s="adfedfdf";
System.out.println(s.length());
(2)获取字符
String s="adfedfdf";
char c=s.charAt(1);
System.out.println(c);
(3)字符串转字符数组
String s="adfedfdf";
char[] chars=s.toCharArray();
(4)判断内容值是否一致
String s1=new String("adfedfdf");
String s2=new String("adfedfdf");
System.out.println(s1.equal(s2));//true
String s3=new String("Adfedfdf");
String s4=new String("adfedfdf");
System.out.println(s3.equalIgnoreCase(s4));//true
(5)截取子字符串(包前不包后)
String s="Java是重要的编程语言";
String rs1=s.substring(0,8);//Java是最好的
String rs2=s.substring(5);//一直截取到字符串的末尾
(6)替换语句
String s="这个电影真是垃圾,垃圾!";
String rs=s.replace("垃圾","**");//这个电影真是**,**!
(7)判断字符串中是否有关键字
String s="Java是最好的编程语言之一";
System.out.println(s.contains("Java"));//对大小写敏感
(8)是否以某个字符串开头
String s1="adfedfdf";
System.out.println(s1.startWith("adf"));
(9)分割字符串
String s="afe,fef,fefe,df";
String[] names=s.split(",");
二、ArrayList
ArrayList是集合的一种,类似于数组,集合大小可变,开发中用的较多,操作有增删改查。直接打印ArrayList时不会打印地址,而是人性化地打印数据。
1、构造方法
ArrayList()//构造一个初始容量为10的空列表
ArrayList(int intialCapcity)//构造具有指定初始容量的空列表
ArrayList(Collection<? extends E> c)//按照集合的迭代器返回的顺序构造一个包含指定集合元素的列表
2、操作方法
(1)返回大小
.size();
(2)添加数据
ArrayList list1=new ArrayList();
list1.add("abc");//在末尾添加数据
list1.add("def");
ArrayList<String> list2=new ArrayList<String>();
list2.add(1,"MySQL");//指定位置插入数据
(3)获取数据
ArrayList list1=new ArrayList();
list1.add("abc");
list1.add("def");
list1.add("ghi");
System.out.println(list.get(1));
(4)删除数据
ArrayList list1=new ArrayList();
list1.add("abc");
list1.add("def");
list1.add("ghi");
System.out.println(list1.remove(1));//删除指定索引的元素,返回被删除的元素
System.out.println(list1.remove("ghi"));//删除某个元素值,返回是否删除成功(默认删除第一个)
(5)修改数据
ArrayList list1=new ArrayList();
list1.add("abc");
list1.add("def");
list1.add("ghi");
System.out.println(list1.set(1,"ccc"));//修改某个索引位置处的数据,修改后会返回原来的值给我们
三、Arrays类
Arrays是用来操作数组的工具类
1、常用方法
(1)返回数组的内容toString
int[] arr={10,20,30,40,50};
System.out.println(Arrays.toString(arr));//返回字符串
(2)拷贝数组指定范围
int[] arr={10,20,30,40,50};
int[] arr2=Arrays.copyOfRange(arr,1,4);//包前不包后
System.out.println(Arrays.toString(arr2));
(3)拷贝数组指定新数组长度
int[] arr={10,20,30,40,50};
int[] arr3=Arrays.copyOf(arr,10);//包前不包后
System.out.println(Arrays.toString(arr3));//打印出10 20 30 40 50 0 0 0 0 0
(4)修改数组中原数据
double[] prices={99.8,120,100};
Arrays.setAll(prices,new IntToDoubleFunction(){
@Override
public double applyAsDouble(int value){
//value会获取到数组的索引
return prices[value]*0.8;
}
});
(5)数组排序
double[] prices={99.8,120,100};
Arrays.sort(prices);//默认是升序排序
如果数组中存储的是对象,我们就需要自定义排序规则,有两种方法:
- 让该对象实现comparable接口,重写compareTo方法,自己来制定比较规则
public class Student implement Compareable<Student>{
@Override
//约定:认为左边对象大于右边对象,返回正整数
// 认为左边对象小于右边对象,返回负整数
// 认为左边对象等于右边对象,返回0
public int compareTo(Student o){
if(this.age>o.age){
return 1;
}else if(this.age<o.age){
return -1;
}
return 0;
}
}
//return this.age-o.age;//升序
//return o.age-this.age;//降序
- 使用Comparator比较器接口的匿名内部类对象
Array.sort(students,new Comparator<Student>(){
@Override
public int compare(Student o1,Student o2){
//约定:认为左边对象大于右边对象,返回正整数
// 认为左边对象小于右边对象,返回负整数
// 认为左边对象等于右边对象,返回0
//以下是升序排序规则
if (o1.getHeight()>o2.getHeight()){
return 1;
}else if (o1.getHeight()<o2.getHeight()){
return -1;
}
return 0;
}
});
(6)填充数据Fill
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] array = new int[5]; // 创建一个长度为5的数组
Arrays.fill(array, 10); // 使用值10填充数组
// 打印数组,输出:[10, 10, 10, 10, 10]
System.out.println(Arrays.toString(array));
}
}