一、集合类
1、集合类的由来及概述:
1)、面向对象编程语言对事物的描述都是通过对象来体现,为了方便对多个对象进行操作,就必须对这多个对象进行存储,而要想对多个对象进行存储,就不能是一个基本的变量,而应该是一个容器类型的变量。
2)、容器类型的变量:StringBuilder,数组
3)StringBuilder的结果是一个字符串类型,不能满足需求,而只能选择数组,但是数组的长度是固定的,适应不了变化的需求。
4)Java提供了一个集合类
2、集合类额特点:
长度可变
3、ArrayList:
大小可变数组的实现
<e>:一种特殊的数据类型,泛型
如何使用:
ArrayList<String>,ArrayList<Student>
4、ArrayList类的构造方法和成员方法(java.lang)
构造方法:
ArrayList()
成员方法:
a、添加元素
public boolean add(E e):添加元素
public void add (int index ,E element):在指定的索引处添加一个元素
b、获取元素
public E get(int index):返回指定索引处的元素
c、集合长度
public int size():返回集合中的元素个数
d、删除元素
public boolean remove(Object 0):删除指定的元素,返回删除是否成功
public E remove (int index):删除指定索引处的元素,返回被删除的元素
e、修改元素
public E set (int index, E element):修改指定索引处的元素,返回被修改的元素
代码块—添加元素
import java.util.ArrayList
public class ArrayListDemo{
public static void main(String[] args){
//创建集合对象
ArrayList<String> array = new ArrayList<String>();
//add(E e)
array.add("hello");
array.add("world");
array.add("java");
System.out.println("array:"+array);//输出结果:array:[hello,world,java]
array.add(1,"android");
System.out.println("array:"+array);//输出结果:array:[hello,android,world,java]
}
}
代码块----获取元素、集合长度、删除元素、修改元素
public class ArrayListDemo2{
public static void main(String[] args ){
//创建集合对象
ArrayList<String> array = new ArrayList<String>();
//添加元素
array.add("hello");
array.add("world");
array.add("java");
1 //public E get(int index):返回指定索引处的元素
System.out.println("get:"+array.get(0));
System.out.println("get:"+array.get(1));
System.out.println("get:"+array.get(2));
/*
输出结果:
get:hello
get:world
get:java
array:[hello,world,java]
*/
2 //public int size():返回集合中的元素个数
System.out.println("size:"+array.size());
/*
size:3
array:[hello,world,java]
*/
3 //public boolean remove(Object 0):删除指定的元素,返回删除是否成功
System.out.println("remove:"+array.remove("world"));
/*
remove:true
array:[hello,java]
*/
4 //public E remove (int index):删除指定索引处的元素,返回被删除的元素
System.out.println("remove:"+array.remove(0));
/*
remove:hello
array:[world,java]
*/
5 //public E set (int index, E element):修改指定索引处的元素,返回被修改的元素
System.out.println("set:"+array.set(1,"android"));
/*
set:world
array:[hello,android,java]
*/
输出
System.out.println("array:"+array);
}
}
二、集合的遍历
ArrayList集合的遍历
代码块
import java.util.ArrayList
public class ArrayListDemo3{
public static void main(String[] args){
//创建集合对象
ArrayList<String> array = new ArrayList<String>();
//添加元素
array.add("hello");
array.add("world");
array.add("java");
//获取元素
//原始做法
System.out.println("get:"+array.get(0));
System.out.println("get:"+array.get(1));
System.out.println("get:"+array.get(2));
System.out.println("--------");
//正确做法
for(int x=0 ; x<ArrayList.size(); x++){
System.out.println(array.get(x));
}
System.out.println("--------");
//标准做法(重点关注)
for(int x=0 ; x<ArraryList.size(); x++){
String s = array,get(x);
System.out.println(s);
}
}
}
输出结果:
hello
world
java
--------
hello
world
java
--------
hello
world
java
四、练习
1、ArrayList练习–存储字符串并且遍历
代码块
import java.util.ArrayList
/*
分析:
1、创建集合对象
2、添加字符串元素
3、遍历集合
*/
public class ArrayListTest{
public static void main(String[] args ){
//创建集合对象
ArrayList<String> array = new ArrayList<String>();
//添加元素
array.add("hello");
array.add("world");
array.add("java");
for(int x=0 ; x<ArrayList.size(); x++){
String s = array,get(x);
System.out.println(s);
}
}
}
2、获取满足要求的元素
给定一个字符串数组:{“张三丰”,“宋远桥”,“张无忌”,“”殷梨亭“,”张翠山“,”莫声谷“},把数组中的元素添加到集合中,并把所有姓张的人员打印到控制台上
分析:
1、定义字符串数组
2、创建集合对象
3、遍历字符串数组,获取到每一个字符串元素
4、把获取额字符串元素添加到集合
5、遍历集合
判断每一个字符串元素是否以“张”开头
public class ArrayListTest2{
public static void main(String[] args ){
//定义字符串数组
String[] strArray = {“张三丰”,“宋远桥”,“张无忌”,“”殷梨亭“,”张翠山“,”莫声谷“};
//创建集合对象
ArrayList<String> array = new ArrayList<String>();
//遍历字符串数组,获取到每一个字符串元素
for(int x= 0; x<strArray.length; x++){
//把获取额字符串元素添加到集合
array.add(strArray[x]);
}
//遍历集合
for(int x=0;x<arrary.size();x++){
String s = array.get();
//判断每一个字符串元素是否以“张”开头
if(s.startsWith("张")){
System.out.println(s);
}
}
}
}
输出结果:
张三丰
张无忌
张翠山
3、存储自定义对象并遍历
分析:
1、定义学生类
2、创建集合对象
3、创建学生对象
4、把学生对象作为元素添加到集合中
5、遍历集合
代码块
Stuent.java
public class Student{
private String name;
private int age;
public Student(){
}
public Student(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(){
this.age = age ;
}
public void age (int age ){
return age;
}
}
ArrayListTest3.java
public class ArrayListTest3{
public static void main(String[] args){
//创建集合对象
ArrayList<Student> array = new ArrayList<Student>();
//创建学生对象
Stduent s1 = new Student("林青霞",20);
Stduent s2 = new Student("张曼玉",30);
Stduent s3 = new Student("景甜",25);
Stduent s4 = new Student("柳岩",18);
//把学生对象作为元素添加到集合中
array.add(s1);
array.add(s2);
array.add(s3);
array.add(s4);
//遍历集合
for(int x=0 ; x<array.size();x++){
Student s = array.get(x);
System.out.println(s.getName()+"---"+s.getAge());
}
}
}
输出结果:
林青霞---20
张曼玉---30
景甜---25
柳岩---18
4、键盘录入数据存储并遍历
创建一个集合,存储学生对象,学生对象的数据来源于键盘录入,再遍历集合
分析:
1、定义学生类
2、创建集合对象
3、键盘录入数据,创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
4、把学生对象作为元素存储到集合中
5、遍历集合
Student.java
public class Student{
private String name;
private String age;
public Student(){
}
public Student(String name,int age){
this.name = name;
this.age = age;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
publicString getAge(){
this.age = age ;
}
public void setAge(String age ){
return age;
}
}
StudentDeno.java
public class StduentDeno{
public static void main(String[] args){
//创建集合对象
ArrayList<Student> array = new ArrayList<Stduent>();
//调用方法
addStduent(array);
addStduent(array);
addStduent(array);
//遍历集合
for(int x= 0;x<array.size();x++){
Student s = array.get(x);
System.out.println(s.getName()+"---"+s.getAge());
}
}
两个明确:
返回值类型:void(形参直接影响实参)
参数列表:ArrayList<Stduent> array
public static void addStduent(ArrayList<Student> array){
//键盘录入数据,创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生姓名");
String name = sc. nextLine();
System.out.println("请输入学生年龄");
String age = sc. nextLine();
Student s = new Stduent();
s.setName(name);
s.setAge(age);
//把学生对象作为元素存储到集合中
array.add(s);
}
}