JAVA-api-ArrayListMath 集合长度可变的容器ArrayListpackage APIlearn; import java.util.ArrayList; public class ArrayLIstTest { public static void main(String[] args) { int[] arrnew int[3]; //无限制集合里面可以存储任意类型的数据 ArrayList listnew ArrayList(); list.add(sad); list.add(0); Object objlist.get(0); //多态的弊端无法使用子类的特有行为 Object olist.get(1); if(o instanceof String ){ }else if(o instanceof Integer){ } //泛型限定存储的数据类型 ArrayListStringlist1new ArrayList(); list1.add(gegt); String slist1.get(0); //重复的内容后面的泛型可以不写但是尖括号可以保留 ArrayList Integer list2new ArrayList(); //有返回值为了实现集合面向对象的统一 //集合里面只能添加引用数据类型不能添加基本数据类型 list2.add(0,12); //索引 list2.remove(1); //修改索引修改的数 Integer relist2.set(0,7); //获取get(int index); Integer reslist2.get(2); System.out.println(res); } }练习1package APIlearn; import java.util.ArrayList; public class Packageclass { public static void main(String[] args) { ArrayListIntegerlistnew ArrayList(); Integer i110; Integer i220; Integer i330; list.add(i1); list.add(1); list.add(2); System.out.print([); for(int i0;ilist.size();i){ Integer numlist.get(i); if(ilist.size()-1){ System.out.print(num]); }else{ System.out.print(num,); } } } }练习2package APIlearn; import java.util.ArrayList; public class Testarraylist { public static void main(String[] args) { //1.创建集合对象 ArrayListPackageclasslistnew ArrayList(); //2.创建一些对象 Packageclass s1new Packageclass(zh,23,2); Packageclass s2new Packageclass(zhi,2332,22); Packageclass s3new Packageclass(zhu,233,22); list.add(s1); list.add(s2); list.add(s3); //获取和遍历 for (int i 0; i list.size(); i) { Packageclass stulist.get(i); System.out.println(stu.getId() stu.getName() stu.getAge() ); } System.out.println(findStudent(2332,list )); } //查找返回int public static int findStudent(String id,ArrayListPackageclasslist){ for (int i 0; i list.size(); i) { //遍历集合得到的集合中的每一个元素学生对象判断元素的id和要查找的id是否一致 Packageclass stulist.get(i); //判断,链式编程 if(stu.getId().equals(id)){ return i; } }return -1; } }package APIlearn; import java.lang.reflect.Array; import java.util.ArrayList; public class Packageclass {//id,姓名年龄 private String name; private String id; private int age; public Packageclass(String name, String id, int age) { this.name name; this.id id; this.age age; } public Packageclass() { } public String getName() { return name; } public void setName(String name) { this.name name; } public String getId() { return id; } public void setId(String id) { this.id id; } public int getAge() { return age; } public void setAge(int age) { this.age age; } }MATHfloor向下取整abs取绝对值ceil向上取整round四舍五入max取两个int值中的较大值pow返回a的b次幂random返回值为double 的随机值package APIlearn; public class Mathtest { public static void main(String[] args) { int numMath.abs(-12); System.out.println(num); System.out.println(Math.ceil(23.34)); System.out.println(Math.floor(23.12)); System.out.println(Math.round(-12.67));//四舍五入int System.out.println(Math.pow(2,3)); System.out.println(Math.sqrt(25)); System.out.println(Math.cbrt(27)); System.out.println(Math.random()); } }练习1public class SelfPowerNumber { /** * 判断一个正整数是否为自幂数 * param num 待判断的整数 * return 是自幂数返回 true否则返回 false */ public static boolean isSelfPower(int num) { // 自幂数必须是正整数排除 0 和负数 if (num 0) { return false; } int originalNum num; // 步骤1计算数字的位数 n int digitCount 0; int temp num; while (temp ! 0) { temp temp / 10; digitCount; } // 步骤2计算每一位数字的 digitCount 次幂之和 int sum 0; temp originalNum; while (temp ! 0) { int digit temp % 10; // 取出当前个位数字 sum power(digit, digitCount); // 累加当前位的 n 次幂 temp temp / 10; // 去掉个位 } // 步骤3比较幂次和与原数是否相等 return sum originalNum; } /** * 辅助方法整数幂运算避免 Math.pow 浮点精度问题 * param base 底数 * param exponent 指数 * return base 的 exponent 次幂 */ private static int power(int base, int exponent) { int result 1; for (int i 0; i exponent; i) { result * base; } return result; } public static void main(String[] args) { // 测试案例 int[] testNumbers {153, 1634, 123, 9474, 0, -5, 1}; for (int num : testNumbers) { System.out.println(num 是否为自幂数 isSelfPower(num)); } } }