ArrayList集合
1. ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
2. ArrayList 继承了 AbstractList ,并实现了 List 接口。
3. ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下:
import java.util.ArrayList; // 引入 ArrayList 类
ArrayList<E> objectName =new ArrayList<>(); // 初始化
4. ArrayList 是一个数组队列,提供了相关的添加、删除、修改等功能。
5. ArrayList 中的元素实际上是对象,在以上实例中,数组列表元素都是字符串 String 类型。
如果我们要存储其他类型,而 <E> 只能为引用数据类型,这时我们就需要使用到基本类型的包装类。
要注意ss数组的索引值从 0 开始。
ArrayList 类提供了很多有用的方法,添加元素到 ArrayList 可以使用 add() 方法
如果要修改 ArrayList 中的元素可以使用 set() 方法
如果要删除 ArrayList 中的元素可以使用 remove() 方法
如果要计算 ArrayList 中的元素数量可以使用 size() 方法
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("weixin");
sites.add("pinduoduo");
sites.add("Taobao");
sites.add("jingdong");
sites.set(2, "QQ"); // 第一个参数为索引位置,第二个为要修改的值
System.out.println(sites);
//sites.remove(3); // 删除第四个元素
//System.out.println(sites.size());
}
不重复的点名小程序
public static void main(String[] args) {
//可以使用Arrays的asList实现序列化一个集合
List<String> list= Arrays.asList(
"叶枫","饶政","郭汶广","王志刚","时力强","柴浩阳","王宁","雷坤恒",
"贠耀强","齐东豪","袁文涛","孙啸聪","李文彬","孙赛欧","曾毅","付临",
"王文龙","朱海尧","史艳红","赵冉冉","詹梦","苏真娇","张涛","王浩",
"刘发光","王愉茜","牛怡衡","臧照生","梁晓声","孔顺达","田野","宫帅龙",
"瞿新成","王婧源","刘建豪","彭习峰","胡凯","张武超","李炳杰",
"刘传","焦泽国");
//把list作为参数重新构建一个新的ArrayList集合
ArrayList<String> names=new ArrayList<>(list);
//使用Scanner、Random、ArrayList完成一个不重复的点名程序
Random random=new Random();
Scanner scanner=new Scanner(System.in);
while(true){
//如果集合中没有元素了别结束循环
if(names.size()==0){
System.out.println("已完成所有学生抽查,抽查结束请重新开始");
break;
}
System.out.println("确认点名请输入吧Y/y");
String input=scanner.next();
if(input.equals("Y")||input.equals("y")){
//随机一个集合下标
int index=random.nextInt(names.size());
System.out.println(""+names.get(index));
//该学生已经被抽到,把他从集合中移除
names.remove(index);
}else{
System.out.println("本次抽查结束");
break;
}
}
}
基本数据类型和包装类
基本数据类型 | 对应的包装类(java.lang包) |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
装箱与拆箱
装箱:把基本数据类型转换成包装类型
Integer a3=new Integer(6);
Integer a4=Integer . value0f(6);
System. out. printLn(a3);
System. out. printLn(a4);
拆箱:把包装类型转换成基本数据类型
int a5=a3.intValue();
System.out.printLn(a5);
自动拆箱装箱
概念:基本类型的数据和包装类之间可以自动的相互转换
自动装箱: 直接把int类型的整数赋值包装类
Integer in = 1; 就相当于 Integer in = new Integer(1);自动拆箱: in是包装类,无法直接参与运算,可以自动转换为基本数据类型,在进行计算
in+2;就相当于 in.intVale() + 2 = 3
in = in.intVale() + 2 = 3 又是一个自动装箱
基本数据类型与字符串的转换
//4.---基本数据类型与字符串之间转换
//基本数据类型自动转换为字符串类型 123 “123” “abc” 异常
System.out.println(1+"2");
System.out.println(1+2+"3");
System.out.println("-----------");
//字符串手动转换为基本数据类型
int n=Integer.parseInt("123");
double d=Double.parseDouble("3.14");
System.out.println(n);
System.out.println(d);
System.out.println("----------------");
int n1=Integer.parseInt("8D3FEA",16);
System.out.println(n1);