ArrayList
Random
使用三步骤:
- 导包 import java.util.Random
- 创建 Random r = new Random();
- 使用 int num = r.nextInt(); 获取一个int随机数
若要规定随机数的范围(左闭右开): int num=r.nextInt(5);即取值范围为[0,3),即0、1、2。
ArrayList集合
基本使用
数组的长度不可以发生改变,但是ArrayList集合的长度是可以随意变化。
对应ArrayList来说,有一个尖括号
泛型:也就是装在集合当中的所有元素,全部都是统一的什么类型。
注意:泛型只能是引用类型,不能是基本类型。(字符串、类、数组、接口、Lambda)
对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。
如果内容为空,则结果是[]
ArrayList<String> list = new ArryList<>();
System.out.println(list); //[]
//向集合中添加一些数据,用add方法
list.add("张三");
System.out.println(list); //[张三]
list.add("李四");
list.add("王五");
System.out.println(list); //[张三,李四,王五]
//list.add(100);错误写法!因为创建的时候尖括号泛型已经说了是字符串,添加进去的元素就必须都是字符串才行
常用方法
ArrayList当中的常用方法:
public boolean add(E e):向集合当中添加元素,参数类型和泛型一致。
注意:对于ArrayList集合;来说,add添加动作一定是成功的,所以返回值可用可不用。
但对于其他集合来说,add添加动作不一定成功。
public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。
public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除的元素。
public int size():获取集合的尺寸长度,返回值是集合中包含的元素个数
import java.util.ArrayList;
public class Demo01{
public static void main(String[] args){
Array<String> list =new ArrayList<>();
boolean res=list.add("孙权");
System.out.println("添加的动作是否成功:"+res);//true
list.add("刘备");
list.add("曹操");
list.add("赵云");
System.out.println(list);//[孙权,刘备,曹操,赵云]
//从集合中获取元素:get,索引值从0开始
String name=list.get(2);//因为泛型是String类型,所以用String定义name
System.out.println(name);//曹操
//从集合中删除元素:remove,索引值从0开始
String Rmd=list.remove(3);
System.out.println(Rmd);//赵云
System.out.println(list);[孙权,刘备,曹操]
int size=list.size();
System.out.println(size);//3,集合的长度,即集合内元素的个数
//遍历集合
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
//输出结果为
/* 孙权
刘备
曹操
*/
ArrayList集合存储基本类型数据
如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的包装类。
基本类型 包装类(引用类型,包装类都位于java.lang包下)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
自动装箱:基本类型——>包装类型
自动柴箱:包装类型——>基本类型
public class Demo01{
public static void main(String[] args){
Array<String> listA =new ArrayList<>();
/*ArrayList<int> listB=new ArrayList<>();错误写法,泛型只能是引用类型,不能是基本类型。其实集合中保存的都是地址值,但是基本类型的数据没有地址值。*/
Array<Integer> listB=new ArrayList<>();
listB.add(100);
listB.add(200);
listB.add(300);
System.out.println(listB);//[100,200,300]
int num=listB.get(1);
System.out.println(num);//200
}
}
题目:生成6个1-33之间的随机整数,添加到集合,并遍历集合。
import java.util*
public class test01{
publuc static void main(String[] args){
ArrayList<Integer> list =new ArrayList<>();
Random a=new Random();
for(int i=0;i<6;i++){
int num=a.nextInt(33)+1;
list.add(num);
}
//遍历集合
for(jint i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
题目:定义以知道格式打印集合的方法(ArrayList类型作为参数),使用{}括起集合,使用@分隔每个元素。
import java.util*
public class test01{
publuc static void main(String[] args){
ArrayList<String> list =new ArrayList<>();
list.add("张三丰")
}
//遍历集合
for(jint i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
浙公网安备 33010602011771号