1.集合
ArrayList
集合和数组的优势对比:
长度可变
添加数据的时候不需要考虑索引,默认将数据添加到末尾
java
package com.itheima;
import java.util.ArrayList;
/*public boolean add(要添加的元素) | 将指定的元素追加到此集合的末尾 |
| public boolean remove(要删除的元素) | 删除指定元素,返回值表示是否删除成功
| public E remove(int index) | 删除指定索引处的元素,返回被删除的元素
| public E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素
| public E get(int index) | 返回指定索引处的元素
| public int size() | 返回集合中的元素的个数
*/
public class ArrayListDemo2 {
public static void main(String[] args) {
//1.创建一个集合对象
ArrayList<String> list = new ArrayList<String>();
//2.添加元素
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
//3.删除元素
boolean result = list.remove("aaa");
System.out.println(list);
//删除失败返回flast
//根据索引删除元素,返回被删除的元素
String str = list.remove(2);
System.out.println(str);
System.out.println(list);
//4.修该元素
String str2 = list.set(0, "aaa");
System.out.println(str2);//返回被覆盖的元素
System.out.println(list);
//5.查寻元素
String str3 = list.get(0);
System.out.println(str3);//返回指定索引处的元素
System.out.println(list);
//6.遍历集合
for (int i = 0; i < list.size(); i++) {
//list.get(i)元素
System.out.println(list.get(i));
}
}
}
cpp
package com.itheima;
import java.util.ArrayList;
import java.util.List;
//定义一个方法,讲价格低于3000的手机信息打印出啦
public class PhoneTest {
public static void main(String[] args) {
//1.创建集合
ArrayList<Phone> list = new ArrayList<Phone>();
//2.创建对象
Phone p1 = new Phone("苹果",1000);
Phone p2 = new Phone("小米",2200);
Phone p3 = new Phone("锤子",3200);
//3.添加数据
list.add(p1);
list.add(p2);
list.add(p3);
//4.调用方法
ArrayList<Phone> phoneInfolist = getPhoneInfo(list);
//5.遍历集合
for (int i = 0; i < phoneInfolist.size(); i++) {
Phone p = phoneInfolist.get(i);
System.out.println(p.getBrand()+" "+p.getPrice());
}
}
//如果说我们要返回多个数据,可以把这些数据先放到一个容器当中,再把容器返回
//集合,数组
public static ArrayList<Phone> getPhoneInfo( ArrayList<Phone> list ) {
ArrayList<Phone> resultlist=new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
Phone p = list.get(i);
int price = p.getPrice();
if(price<3000){
resultlist.add(p);//手机对象p存再集合resultlist里
}
}
return resultlist;
}
}
cpp
package com.itheima;
import java.util.ArrayList;
public class ArrayListDemo7Case {
public static void main(String[] args) {
//1.创建集合
ArrayList<User> list = new ArrayList<User>();
//2.创建三个用户对象
User u1=new User("001","zhngsan","123");
User u2=new User("002","li","456");
User u3=new User("003","zhngsan","789");
//3.添加元素
list.add(u1);
list.add(u2);
list.add(u3);
//4.调用方法看id是否存在
int flag = contains(list, "002");
if(flag>=0){
User u = list.get(flag);
System.out.println(u.getId());
}else{
System.out.println("不存在");
}
}
public static int contains(ArrayList<User> list,String id){
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId().equals(id)){
return i;
}
}
return -1;
}
}
cs
package com.itheima;
import java.util.ArrayList;
import java.util.Scanner;
public class ArrayListDemo6 {
public static void main(String[] args) {
//1.创建集合
ArrayList<Student> list=new ArrayList<>();
//长度为0
//2.键盘录入学生的信息并添加到集合当中
Scanner sc=new Scanner(System.in);
for(int i=0;i<3;i++){
Student s=new Student();
System.out.println("请输入学生姓名");
String name=sc.next();
System.out.println("请输入学生的年龄");
int age=sc.nextInt();
//把name和age赋值给学生对象
s.setName(name);
s.setAge(age);
//把学生对象添加在集合中
list.add(s);
}
//遍历集合
for (int i = 0; i < list.size(); i++) {
Student stu=list.get(i);
System.out.println(stu.getName()+" "+stu.getAge());
}
}
}