集合的长度是可变的
public class ArrarList01 {
public static void main(String[] args) {
//利用ArrayList的空参构造,生成一个集合的对象
//泛型:在类名后面利用尖括号来表明存储的类型
ArrayList<int> list = new ArrayList<int>();
}
}
上面写上int会报错,是因为集合是不可以直接存储基本数据类型,如果改成
ArrayList<String> list = new ArrayList<String>();
JDK7之后,第二个String可以不写
补充说明:
ArrayList是JAVA中自带的类,JAVA底层已经做了一些处理,直接打印是会打印其中的内容,而不是打印的地址值,打印的时候会使用[]将其中的数据包裹
集合中不可以写基本数据类型,如果要存基本数据类型的数据,就需要使用对应的包装类

ArrayList的成员方法

1、增

2、删
指定删除某个元素
remove(指定删除的元素)这里会返回是否删除成功,是一个boolean类型的

按照索引来删除某个元素
remove(0),这里是返回被删除的那个元素
String str=list.remove(0); System.out.println(str);
3、改
set方法根据集合的索引来修改内容,set方法本身会返回修改的原数据值
boolean result=list.add("abc");
//list.add(1,"abd",2,"ddd");
list.add("ABC");
String str=list.set(0,"下");
System.out.println(str);
System.out.println(list);
4、查
get方法可以根据索引来返回要查询的元素
System.out.println(list.get(0));
size方法可以根据索引来返回集合的长度,也就是集合中元素的个数
特别注意的就是集合这里是size,不是length
int length=list.size(); System.out.println(length);
5、对集合进行遍历
list.add("ABC");
list.add("abc");
list.add("def");
for(int i=0;i<list.size();i++){
System.out.print(list.get(i)+",");
}
集合小练习:
定义一个集合,添加字符串,并进行遍历,遍历的格式如下:
[元素1,元素2,元素3]
public class ArrayList02 {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<>();
list.add("ABC");
list.add("abc");
list.add("DEF");
list.add("def");
//遍历
System.out.println(list);
}
也可以麻烦一下,写个循环
/System.out.println(list);
System.out.print("[");
for(int i=0;i<list.size();i++){
if(i==list.size()-1){
System.out.print(list.get(i));
}else {
System.out.print(list.get(i)+",");
}
}
System.out.print("]");
2、定义一个集合,添加数字,并进行遍历,遍历的格式如下:
[元素1,元素2,元素3]
package com.jdL.day11classwork;
import java.util.ArrayList;
public class ArrayList03 {
public static void main(String[] args) {
ArrayList<Integer> list=new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
System.out.print("[");
for(int i=0;i<list.size();i++){
if(i==list.size()-1){
System.out.print(list.get(i));
}else {
System.out.print(list.get(i)+",");
}
}
System.out.print("]");
}
}
定义一个集合,存放一些学生对象,并遍历出来
package com.jdL.day11classwork;
public class ArrayListStudent {
private String name;
private int age;
public ArrayListStudent(){}
public ArrayListStudent(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package com.jdL.day11classwork;
import java.util.ArrayList;
public class ArrayList04 {
public static void main(String[] args) {
ArrayList<ArrayListStudent> students=new ArrayList<>();
students.add(new ArrayListStudent("张三",18));
students.add(new ArrayListStudent("李四",20));
for(int i=0;i<students.size();i++){
System.out.print(students.get(i).getName()+",");
System.out.println(students.get(i).getAge());
}
}
}
如果学生的姓名和年纪是键盘录入的,可以修改为
package com.jdL.day11classwork;
import java.util.ArrayList;
import java.util.Scanner;
public class ArrayList04 {
public static void main(String[] args) {
ArrayList<ArrayListStudent> students=new ArrayList<>();
for(int i=0;i<3;i++){
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生的姓名");
String name=sc.next();
System.out.println("请输入学生的年纪");
int age=sc.nextInt();
students.add(new ArrayListStudent(name,age));
}
for(int i=0;i<students.size();i++){
System.out.print(students.get(i).getName()+",");
System.out.println(students.get(i).getAge());
}
}
}
判断用户是否存在,在main中定义一个集合,存入三个用户对象,用户的属性:
id,username,password
定义一个方法,根据ID查询用户信息,
如果存在返回true,如果不存在返回false
package com.jdL.day11classwork;
public class ArrayListUser {
private int id;
private String name;
private String password;
public ArrayListUser() {
}
public ArrayListUser(int id, String name, String password) {
this.id = id;
this.name = name;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
package com.jdL.day11classwork;
import java.util.ArrayList;
public class ArrayList05 {
public static void main(String[] args) {
ArrayList<ArrayListUser> user=new ArrayList<>();
user.add(new ArrayListUser(1,"张三","123456"));
user.add(new ArrayListUser(2,"李四","abcdef"));
user.add(new ArrayListUser(3,"王五","abcdef"));
boolean flage=getId(user,4);
System.out.println(flage);
}
public static boolean getId(ArrayList<ArrayListUser> user,int id){
for(int i=0;i<user.size();i++){
if(user.get(i).getId()==id){
return true;
}
}
return false;
}
}
判断用户是否存在,在main中定义一个集合,存入三个用户对象,用户的属性:
id,username,password
定义一个方法,根据ID查询用户信息,
如果存在返回索引,如果不存在返回-1;
package com.jdL.day11classwork;
import java.util.ArrayList;
public class ArrayList05 {
public static void main(String[] args) {
ArrayList<ArrayListUser> user=new ArrayList<>();
user.add(new ArrayListUser(1,"张三","123456"));
user.add(new ArrayListUser(2,"李四","abcdef"));
user.add(new ArrayListUser(3,"王五","abcdef"));
int nameId=getId(user,2);
System.out.println(nameId);
}
public static int getId(ArrayList<ArrayListUser> user,int id){
for(int i=0;i<user.size();i++){
if(user.get(i).getId()==id){
return user.get(i).getId();
}
}
return -1;
}
}

注意点:这里返回的数据不止一条,这就需要拿一个容器把数据存起来。可以使用数组或者集合
package com.jdL.day11classwork;
import java.util.ArrayList;
public class ArrayList06 {
public static void main(String[] args) {
ArrayList<ArrayListPhone> list=new ArrayList<ArrayListPhone>();
list.add(new ArrayListPhone("小米",1000));
list.add(new ArrayListPhone("苹果",8000));
list.add(new ArrayListPhone("锤子",2999));
ArrayList<ArrayListPhone> result=getPrice(list);
for(int j=0;j<result.size();j++){
System.out.println(result.get(j).getBrand()+","+result.get(j).getPrice());
}
}
public static ArrayList<ArrayListPhone> getPrice(ArrayList<ArrayListPhone> list){
ArrayList<ArrayListPhone> temp=new ArrayList<>();
for(int i=list.size()-1;i>=0;i--){
if(list.get(i).getPrice()<3000){
temp.add(list.get(i));
}
}
return temp;
}
}
package com.jdL.day11classwork;
public class ArrayListPhone {
private String brand;
private double price;
//空参构造
public ArrayListPhone() {
}
//有参构造
public ArrayListPhone(String brand, double price) {
this.brand = brand;
this.price = price;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
















暂无评论内容