java_09java集合---②集合类

一、集合类

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);
		}
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值