ArrayList集合的长度是可以随意变化的
泛型:也就是装在集合当中的所有元素,全都是统一的什么类型;
注意:泛型只能是引用类型,不能是基本类型;
从JDK1.7开始,右侧的尖括号不用写内容,但是尖括号<>本身不能省略
ArrayList<String> list=new ArrayList<>();
例题:创建及打印,遍历
public class ArraylistDemo {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<>();
System.out.println(list);
list.add("wnekai");
list.add("tiantian");
list.add("meinv");
list.add("yilake");
System.out.println(list);
for (String listnum:list){
System.out.println(listnum);
}
}
}
例题:读取list中的内容用get
System.out.println(list.get(1));
例题:从集合中删除数据用remove(int index)
list.remove(1);
System.out.println(list);
例题:打印list的长度用list
System.out.println(list.size());
如果想使用基本类型,必须使用基本类型的“包装类”
基本类型 包装类(引用类型,包装类位于java.lang包下)
基本 | 包装 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
JDK1.5 开始,支持自动装箱,自动拆箱
自动装箱和自动拆箱
概念:
1)自动装箱:Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱。
2)自动拆箱就是:反之将Integer对象转换成int类型值,这个过程叫做拆箱。因为这里的装箱和拆箱是自动进行的非人为转换,所以就称作为自动装箱和拆箱。
原理:
1)自动装箱时编译器调用valueOf将原始类型值转换成对象。
2)同时自动拆箱时,编译器通过调用类似intValue(),doubleValue()这类的方法将对象转换成原始类型值。
举例:
Integer i = 11;//自动装箱,实际上执行了Integer i = Integer.valueOf(11);
int t = i;//自动拆箱,实际上执行了 int t = i.intValue();
例题:生成6个1~33之间的随机整数,添加到集合,并遍历
import java.util.ArrayList;
import java.util.Random;
public class ArraylistRandom {
public static void main(String[] args) {
ArrayList<Integer> listall = (ArrayList<Integer>) Randomlist(6,1,33);
for (int i : listall){
System.out.println(i);
}
}
public static ArrayList<Integer> Randomlist(int n, int start, int end){
ArrayList<Integer> list = new ArrayList<>();
for (int i = 1 ; i <= n;i++ ) {
list.add(new Random().nextInt(end) + start);
}
return list;
}
}
例题:自定义4个学生对象,添加到集合,遍历
package com.learn.Demo9;
import java.util.ArrayList;
public class ArraylistStudent {
public static void main(String[] args) {
ArrayList<Student> students=new ArrayList<>();
Student num1 =new Student("num1",11);
Student num2 =new Student("num2",12);
Student num3 =new Student("num3",13);
Student num4 =new Student("num4",14);
students.add(num1);
students.add(num2);
students.add(num3);
students.add(num4);
for (Student list:students){
System.out.println("姓名"+list.getName()+"年龄"+list.getAge());
}
}
}
例题:定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}扩起集合,使用@分隔每个元素。格式参照 {元素
@元素@元素}。
package com.learn.Demo9;
import java.util.ArrayList;
public class ArrayListChange {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(100);
list.add(200);
list.add(300);
listChange(list);
}
public static void listChange(ArrayList<Integer> list){
System.out.print("{");
for (Integer i = 0; i <=list.size()-1; i++){
if (i==list.size()-1){
System.out.print(list.get(i));
}else{
System.out.print(list.get(i));
System.out.print("@");
}
}
System.out.println("}");
}
}
例题:定义获取所有偶数元素集合的方法(ArrayList类型作为返回值)
package com.learn.Demo9;
import javax.swing.event.ListDataEvent;
import java.util.ArrayList;
import java.util.Random;
public class ArrayListEven {
public static void main(String[] args) {
ArrayList<Integer> bignum=new ArrayList<>();
// 随机生成20个100以内整数
for (int i = 0; i<20; i++){
bignum.add(new Random().nextInt(100)+1);
}
System.out.println(bignum);
ArrayList<Integer> minnum= ListEven(bignum);
System.out.println(minnum);
}
public static ArrayList<Integer> ListEven( ArrayList<Integer> bignum){
ArrayList<Integer> minnum=new ArrayList<>();
for(Integer i : bignum){
if (i % 2 ==0){
minnum.add(i);
}
}
return minnum;
}
}
视频百度下载地址:
链接:https://pan.baidu.com/s/1TNIezz8jaM0g_qA27tV6sg 提取码:cecx
视频全套教程购买地址:http://suo.im/5zgMaW