权限
**权限修饰符**
1. public (公开的)
2. protected (受保护的)
3. default (默认的): 什么权限修饰符都不写,就是默认的.若是写了default,会报错
4. private (私人的)
Arrays类的基本方法
1.Arrays类 是操作数组的工具类 方法都是静态方法
所以方法的调用 是 类名.方法名();
String[] str={"nba","abc","cba","aaaa","z","qq"};
Arrays.sort(str);
System.out.println(Arrays.toString(str));
int[] array1 = {11,22,33,44,55};
int key = 33;
int index = Arrays.binarySearch(array1, key);
System.out.println(index);
包装类 ##
1. 基本数据类型 的 包装类
byte Byte
short Short
int Integer *
long Long
float Float
double Double
char Character *
boolean Boolean
基本数据类型的作用: 声明变量 (目的:保存数据)
基本数据类 转换 包装类 : 增加成员变量和成员方法
Integer ( int 的 包装类) 类中 有进制转换的方法
// 1.Integer包装类 转 字符串 , Integer.toString();
// 创建Integer对象,保存int值 10
Integer integer = new Integer(10);
// 将Integer对象转换成字符串打印
System.out.println(integer.toString());
// 2.将字符串 转换成 Integer对象 , new Integer(string);
(注意: 只有 数字格式的字符串,才能转换成Integer对象)
// 否则出现 NumberFormatException异常
Integer i = new Integer("123");
// 3.将Integer类型 转化为 int类型 , Integer对象.intValue();
int num = i.intValue();
// 4.将int类型 转换为 Integer类型 , Integer类名.valueOf();
Integer i2 = Integer.valueOf(num);
**Integer类型 与 int类型的相互自动转化**
jdk1.5 自动装箱(调用valueOf()) 和 自动拆箱(调用intValue())
// 自动装箱 系统帮你调用了valueOf方法
Integer n = 10;// Integer.valueOf(10);
System.out.println(n);
// 自动拆箱 系统帮你调用了intvalue方法
int r = n + 15;// n.intvalue() + 15;
System.out.println(r);
Integer num1 = 127;
Integer num2 = 127;
System.out.println(num1 == num2);
System.out.println(num1.equals(num2));
可变字符串类StringBuffer和StringBuilder
1.
String (线程不安全) 不可变字符串
StringBuffer (线程安全,耗费系统资源) 可变字符串
StringBuilder (线程不安全) 可变字符串
注意:StringBuffer 与 StringBuilder 的方法完全一致
二者唯一区别: 线程安全 StringBuffer安全
StringBuilder sb = new StringBuilder();
sb.capacity();
sb.append("wang").append("666").append("哈哈");
System.out.println(sb);
输出结果:
wang666哈哈
sb.length();
sb.toString();
// 插入字符 修改单字符
// 1.插入字符 StringBuilder对象.insert(int index,String str)
StringBuilder sb = new StringBuilder()
sb.append("wangjun")
sb.insert(4,false).append("哈哈")
System.out.println(sb)
输出结果:
wangfalsejun哈哈
// 2.修改单字符 对象名.setCharAt(index,char)
sb.setCharAt(9,'y')
System.out.println(sb)
输出结果:
wangfalseyun哈哈
StringBuilder sb = new StringBuilder();
sb.append("wangjun");
2.删除字符 delete(index)
sb.deleteCharAt(3);
System.out.println(sb);
输出结果:
wanjun
3.获取字符
sb.charAt(3);
// 反转字符串
// 1.反转字符串 对象名.reverse()
StringBuilder sb = new StringBuilder()
System.out.println("请输入字符串:")
Scanner scanner = new Scanner(System.in)
String str = scanner.nextLine()
sb.append(str)
sb.reverse()
System.out.println(sb.toString())
StringBuilder sb = new StringBuilder();
sb.append("wangjun");
sb.replace(4, 7, "long");
System.out.println(sb);
输出结果:
"wanglong"
char[] array = {'a','b','c','d','e'};
String str = new String(array);
StringBuilder sb1 = new StringBuilder(str);
System.out.println(sb1);
int[] array = new int[]{1,2,3,4};
String str = "[";
for (int i = 0; i < array.length; i++) {
if (i == array.length - 1) {
str = str + "4]";
break;
}
str = str + array[i] + ",";
}
System.out.println(str);
int[] array1 = new int[]{1,2,3,4};
StringBuffer sb = new StringBuffer();
sb.append("[");
for (int i = 0; i < array1.length; i++) {
if (i == array.length - 1) {
sb.append(array1[i]).append("]");
}else {
sb.append(array1[i]).append(",");
}
}
System.out.println(sb);
}
集合
1.
数组的弊端:
1️⃣长度一旦确定,就不能更改 (要添加新的元素,只能创建新的数组)
2️⃣只能保存 相同数据类型的元素
集合(容器)的好处
1️⃣长度可变
2️⃣能存储 任意引用类型的元素(存储对象)
2.集合的分类:
1️⃣单列集合
接口:Collection(所有单列集合的父接口) jdk1.2
2️⃣双列集合
3.单列集合
Collection collection = new ArrayList();
boolean b1 = collection.add(1);
boolean b2 = collection.add(2);
boolean b3 = collection.add(3);
boolean b4 = collection.add(4);
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);
System.out.println(b4);
System.out.println(collection);
// 获取集合的长度
// 判断是否包含某个元素
// 从集合中删除一个元素
// 判断集合 是否为空
// 清空数组
// 集合转数组
Collection collection = new ArrayList()
collection.add("a")
collection.add("b")
collection.add("c")
collection.add("d")
// 获取集合的长度 collection.size()
System.out.println(collection.size())
// 判断是否包含某个元素 contains()
Boolean b1 = collection.contains("c")
System.out.println(b1)
// 从集合中删除一个元素 remove()
Boolean b2 = collection.remove("e")
System.out.println("是否删除成功:" + b2)
System.out.println(collection)
// 判断集合是否为空 isEmpty()
Boolean b3 = collection.isEmpty()
System.out.println("集合是否为空:" + b3)
// 清空集合 clear()
// collection.clear()
// System.out.println(collection)
// 集合 转 数组(利用多态,拓展方法,适合所有数据类型)
Object[] objects = collection.toArray()
// 1️⃣循环遍历
for (int i = 0
System.out.println(objects[i])
}
// 2️⃣快速遍历
for(Object s : objects) {
System.out.println(s)
}
// 3️⃣数组类方法遍历
System.out.println(Arrays.toString(objects))
}
Collection collection = new ArrayList();
Student s1 = new Student("张三",16) ;
Student s2 = new Student("赵四",17) ;
Student s3 = new Student("王五",18) ;
collection.add(s1);
collection.add(s2);
collection.add(s3);
Object[] objects = collection.toArray();
for (int i = 0; i < objects.length; i++) {
Student student = (Student) objects[i];
System.out.println(student.getName());
}