编程的时候如果需要存储多个数据,使用长度固定的数组格式不一定能够满足我们的需求,适应不了变化的需求,那么此时我们可以选择使用集合
集合的特点:提供依存存储空间可变的存储类型,存储数据容量可以发生该表
Collection 是单列集合,对应的双列集合是 Map 集合
单列集合 Collection
List 可重复:ArrayList、LinkedList ……
Set 不可重复:HashSet、TreeSet ……
双列集合 Map :HashMap 、TreeMap……
接口:加粗标记 实现类:斜体标记
方法名 | 说明 |
---|---|
public ArrayList() |
创建一个空的集合对象 |
public boolean add(E e) |
将指定的元素最佳到此集合的末尾 |
public void add(int index, E element) |
在此集合中指定位置插入指定的元素 |
demo:致敬《射雕英雄传》
package demo01;
import java.util.ArrayList;
/**
* @Classname : demo01
* @Description : TODO Arraylist 的添加方法和构造方法
* @Author : [email protected]
*/
public class demo01 {
public static void main(String[] args) {
//定义一个空的集合类Arraylist,数据类型是引用数据类型String
ArrayList<String> list = new ArrayList<>();
//调用Arraylist里面的add方法可以在集合里面添加元素
list.add("东邪");
list.add("西毒");
list.add("南帝");
list.add("北丐");
//add方法可以调整插入的位置,例如在第二个(索引的下标是从零开始)位置插入一个“中神通”
list.add(2,"中神通");
//输出集合里面的内容,ArrayList集合可以直接输出
System.out.println(list);//[东邪, 西毒, 中神通, 南帝, 北丐]
}
}
方法名 | 说明 |
---|---|
public boolean remove(Object o) |
删除指定的元素,返回删除是否成功 |
public E remove(int index) |
删除指定索引出的元素,返回删除的元素 |
public E set(int index, E element) |
修改指定索引处的元素,返回修改的元素 |
public E get(int index) |
返回指定索引处的元素 |
public int size() |
返回集合中元素的个数 |
5个人第一次华山论剑,第一次应该是欧阳锋先行离开的
demo:
package demo01;
import java.util.ArrayList;
/**
* @Classname : demo02
* @Description : TODO ArrayList中的常用方法
* @Author : [email protected]
*/
public class demo02 {
public static void main(String[] args) {
//定义一个空的集合
ArrayList<String> list = new ArrayList<>();
//添加几个元素,方法add
list.add("黄固");
list.add("欧阳锋");
list.add("段智兴");
list.add("洪七公");
list.add("王重阳");
//调用第一个方法,remove删除一个元素,删除欧阳锋,华山论剑第一个输掉,第一个走的
list.remove("欧阳锋");
System.out.println(list);//[黄固, 段智兴, 洪七公, 王重阳]
}
}
王重阳最先逝去,师弟周伯通替代
package demo01;
import java.util.ArrayList;
/**
* @Classname : demo02
* @Description : TODO ArrayList中的常用方法
* @Author : [email protected]
*/
public class demo02 {
public static void main(String[] args) {
//定义一个空的集合
ArrayList<String> list = new ArrayList<>();
//添加几个元素,方法add
list.add("黄固");
list.add("欧阳锋");
list.add("段智兴");
list.add("洪七公");
list.add("王重阳");
//调用set方法替换掉王重阳,由王重阳的师弟,周伯通替代
System.out.println(list.set(4,"周伯通")+"5人之中最先逝世");//返回被删除的元素
System.out.println(list);
}
}
import java.util.ArrayList;
/**
* @Classname : demo02
* @Description : TODO ArrayList中的常用方法
* @Author : [email protected]
*/
public class demo02 {
public static void main(String[] args) {
//定义一个空的集合
ArrayList<String> list = new ArrayList<>();
//添加几个元素,方法add
list.add("黄固");
list.add("欧阳锋");
list.add("段智兴");
list.add("洪七公");
list.add("王重阳");
System.out.println(list.get(1) +"会蛤蟆功");//欧阳锋会蛤蟆功
}
}
package demo01;
import java.util.ArrayList;
/**
* @Classname : demo02
* @Description : TODO ArrayList中的常用方法
* @Author : [email protected]
*/
public class demo02 {
public static void main(String[] args) {
//定义一个空的集合
ArrayList<String> list = new ArrayList<>();
//添加几个元素,方法add
list.add("黄固");
list.add("欧阳锋");
list.add("段智兴");
list.add("洪七公");
list.add("王重阳");
System.out.println(list.size());//5
}
}
此时时间拨回到90年代,此时我正在香港某个街头,定睛一看,嚯~
package demo01;
import java.util.ArrayList;
/**
* @Classname : demo03
* @Description : TODO 集合的遍历
* @Author : [email protected]
*/
public class demo03 {
public static void main(String[] args) {
//定义一个空的集合
ArrayList<String> list = new ArrayList<>();
//放入我们今天的主角,不用多说懂得都懂
list.add("刘德华");
list.add("郭富城");
list.add("黎明");
list.add("张学友");
//通过循环进行访问
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i)+",");
}
System.out.println("\n=====================================");
//*****************************************************
//增强for循环,进行访问
for (String str:list) {
System.out.print(str+",");
}
System.out.println("========================================");
}
}
Student学生类
package demo01;
/**
* @Classname : Student
* @Description : TODO 学生类
* @Author : [email protected]
*/
public class Student {
//定义出学生基本属性
private String name;//姓名
private int age;//年领
private String sex;//性别
public Student() {
}
public Student(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
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;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}
}
学生类集合测试
package demo01;
import java.util.ArrayList;
/**
* @Classname : demo04
* @Description : TODO 学生对象集合的测试类
* @Author : [email protected]
*/
public class demo04 {
public static void main(String[] args) {
// 定义一个空的集合
ArrayList<Student> Stulist = new ArrayList<Student>();
//定义一个方法添加学生的信息
EnterYourInformation(Stulist);
//通过循环来输出学生的信息
outputStudentInformation(Stulist);
}
/**
* 输出学生信息
* @param stulist
*/
private static void outputStudentInformation(ArrayList<Student> stulist) {
for (int i = 0; i < stulist.size(); i++) {
System.out.printf("name : %s age: %d sex : %s\n",
stulist.get(i).getName(),stulist.get(i).getAge(),stulist.get(i).getSex());
}
}
/**
* 学生信息添加方法
* @param stulist
*/
private static void EnterYourInformation(ArrayList<Student> stulist) {
//由于这个是对象之间的赋值两个都是一个空间
stulist.add(new Student("小肆",19,"boy"));
stulist.add(new Student("小伍",18,"girl"));
stulist.add(new Student("小陆",17,"girl"));
}
}