JavaSE_day17(eclipse自动生成无参有参getter与setter方法快捷,对象数组的存储的内存图图解,集合类的增删改查,集合类的遍历,集合类的练习)

        1 A_One

 * 对象数组:存储的元素为引用类型
 * 
 * 集合类之ArrayList

        2  B_Student作为学生类

 * 自动生成的方法:
 *         代码区域右键--Source--Genrate Constructors from Superclass  无参构造方法
 *         代码区域右键--Source--Genrate Constructors using feilds     有参构造方法
 *         代码区域右键--Source--Genrate GetterS/Setters

public class B_Student {

	private String name;
	private int age;
	
	
	
	
	public B_Student(String name, int age) {
		super();
		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;
	}
	
}

        2  B_StudentDemo作为学生测试类

 * 对象数组实例
 *         创建一个学生数组,存储三个学生对象并遍历
 * 
 * 分析:
 *         A:定义学生类
 *         B:创建学生数组
 *         C:创建学生对象
 *         D:把学生对象作为元素赋值给学生数组
 *         E:遍历学生数组

 * 对象数组的内存图---图解?

public class B_StudentDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//创建学生数组
		B_Student [] stu=new B_Student[3];
		
		//创建学生对象
		B_Student s1=new B_Student("张三",18);
		B_Student s2=new B_Student("李四",28);
		B_Student s3=new B_Student("王五",38);

		//把学生对象作为元素赋值给学生数组
		stu[0]=s1;
		stu[1]=s2;
		stu[2]=s3;
		
		//遍历学生数组
		for(int i=0;i<stu.length;i++){
			B_Student s=stu[i];
			System.out.println(s.getName()+"-----"+s.getAge());
			
		}
		
 		
	}

}

        3  C_myArrayList

为什么会出现集合类?
 *         我们学习的是面向对象编程语言,而面向对象编程语言对事物的描述都是通过对象来描述的
 *         为了方便对多个对象进行操作,我们必须对这个多个对象进行存储,而想要对多个对象进行存储,
 *         就不能是一个基本变量,而应该是一个容器类型的变量
 *         到目前为止,我们学习过了哪些容器类型?StringBuilder、数组
 *         StringBuilder只能是一个字符串类型,不能满足我们的需求
 *         所以我们目前只能选择数组了,也就是我们前面学习过的数组对象
 *         但是,数组的长度是固定的,适应不了变化的需求,那么我们该如何选择呢?
 *         这个时候,Java就给咱们提供了集合类供我们使用
 *         
 *         集合类特点:长度可变、ArrayList
 * 
 *         ArrayList<E> :
 *             大小可变数组的实现
 *         <E>:
 *             一种特殊的数据类型,也叫泛型
 *             怎么用:在出现这个E的地方,我们使用引用数据类型替换即可(数组、类、接口)。
 *             举例:ArrayList<String> ArrayList<Student> 
 * 
 * 
 *         构造方法:
 *             ArrayList()
 *         
 *         成员方法:
 *             添加元素:
 *                     public boolean add(E e)//添加元素
 *                     public void add(int i,E e)//在指定的索引处添加一个元素
 * 
 *             获取元素:
 *                     public E get(int index);返回指定索引处的元素
 * 
 *             集合长度:
 *                     public int size();返回集合中的元素的个数
 *         
 *             删除元素:
 *                     public E remove(int index);删除指定索引的元素  , 返回该删除的元素
 *                     public boolean remove(Object o);删除指定的元素 , 返回是否成功
 * 
 *             修改元素:
 *                     public E set(int index,E e);修改指定索引处的元素 , 返回被修改的元素
 * 
 * 

public class C_myArrayList {

	
	public static void main(String[] args) {
		ArrayList<String> array = new ArrayList<String>();
		
		System.out.println(array);  //得到空数组  []
//	1.添加
		
//	添加元素  public boolean add(E e)
		
		array.add("Hello");
		System.out.println(array.add("kk")); //返回boolean类型的true, 不常用,会加元素即可
		System.out.println(array);  //返回数组  [Hello,kk]
		System.out.println("--------------------------------------");
		
//	插入元素  public void add(int i,E e)
		
		array.add(1, "Android插入"); //不能越界 否则报错,,当index>=3之后越界
		System.out.println(array);	//[Hello, Android插入, kk]即插入成功到索引为1的地方,
		
		System.out.println("------------------------------------------------");
		
//	2.获取
		//public E get(int index);返回指定索引处的元素
		array.add("hello");
		array.add("world");
		array.add("java");
		
		System.out.println("get(0)"+array.get(0));  //get(0)Hello
		System.out.println("get(1)"+array.get(1));//get(1)安卓插入
		System.out.println("get(2)"+array.get(2));	//get(2)kk
		
//	3.长度
		System.out.println("--------------------------------------");
		System.out.println("size():"+array.size()); //6
		System.out.println(array);
		System.out.println("--------------------------------------");
		
//	4.删除
//	public E remove(int index);删除指定索引的元素  , 返回该删除的元素
		array.remove(0);//一般就是这样用,删除hello,不返回什么
		array.remove("kk");//或者这样用,直接删除元素java
		System.out.println("目前的集合内容:"+array);  //[Android插入, hello, world, java]
//		System.out.println("remove():"+array.remove(0));//删除Hello  ,返回被删除的元素:Hello
		
//	public boolean remove(Object o);删除指定的元素 , 返回是否成功
		
		System.out.println("remove()—java:"+array.remove("java"));//删除java 返回true,因为java有在里面
		System.out.println("remove()-java:"+array.remove("java"));//false 已经被删没了 所以false
		System.out.println("--------------------------------------");
		
//	5.修改
//		public E set(int index,E e);修改指定索引处的元素 , 返回被修改的元素
		System.out.println(array); //[Android插入, hello, world]
		array.set(0, "安卓插入被修改");//一般是这样用,不需要输出什么
//		System.out.println("set():"+array.set(0, "gun"));//修改0索引位置, 即返回被修改的元素: Android插入
		System.out.println("array:"+array);	  //array:[安卓插入被修改, hello, world]
	}
	
}

        4  D_myArrayList

 * 
 * ArrayList集合的遍历
 *         通过get()和size() 配合实现

补充:看泛型是什么类型,在遍历时就用什么类型接收,比如下面就是用String接收

public class C_myArrayList2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//创建集合对象
		
		ArrayList<String> array= new ArrayList<String>();
		
		array.add("1");
		array.add("2");
		array.add("3");
		
//		如何知道集合中元素的个数呢?--size()方法
//		调用get(int i) 方法获取集合中的元素
		for(int i=0;i<array.size();i++){
			System.out.println(array.get(i));
		}
		System.out.println("-------");
//		最标准的写法
		for(int i=0;i<array.size();i++){
			String s = array.get(i);  //字符串就可以做需要的操作了
			System.out.println(s);
		}	
	}

}

        5  E_myArrayList

 * ArrayList 集合的练习
 *         
 *         存储字符串并遍历:
 *             创建集合对象 , 使添加字符串元素,遍历集合
 *             
 *         给一个字符串数组:{"张三丰","宋远桥","张无忌","殷梨亭","张翠山","莫声谷"},将数组中的元素添加到集合中,并把所有的姓张的人员打印到控制台
 * 
 *             定义字符串数组:
 *             创建集合对象
 *             遍历字符串数组,将每一个元素添加到集合
 *             遍历集合
 *                 验证是否”张“姓开头,是则输出(字符串的startsWith方法

public class C_myArrayList3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		ArrayList<String> array=new ArrayList<String>();
//	1.练习1
		array.add("你好");
		array.add("你好1");
		array.add("你好2");
		array.add("你好3");
		
		for(int i=0;i<array.size();i++){
			String s = array.get(i);  //因为集合的泛型是String类型,所以用String类型接收
			System.out.println(s);
		}

		System.out.println("---------------");
		
//	2.练习2
		String []str={"张三丰","宋远桥","张无忌","殷梨亭","张翠山","莫声谷"};
		
//		遍历数组 加到集合
		for(int i=0;i<str.length;i++){
			array.add(str[i]);
		}
		
//		遍历集合
		for(int i=0;i<array.size();i++){
			String s=array.get(i);
			if(s.startsWith("张")){
				System.out.print(s+"\t");
			}
			
		}
	}

}

        6  F_myArrayList

 * 存自定义对象并遍历
 * 
 * 
 * 分析    
 *         A:定义学生类
 *         B:创建集合对象
 *         C:创建学生对象
 *         D:把学生对象作为元素添加到集合中
 *         E:遍历集合
 * 

public class C_myArrayList4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		ArrayList<B_Student> array = new ArrayList<B_Student>(); //使用之前定义的学生类
		
		//创建学生对象
		B_Student s1 = new B_Student("彭于晏",25);
		
		B_Student s2 = new B_Student("吴彦祖",23);
		
		B_Student s3 = new B_Student("迪丽热巴",27);
		
		//把学生对象作为元素添加到集合中去
		
		array.add(s1);
		array.add(s2);
		array.add(s3);
		
		//遍历集合元素
		for(int i=0;i<array.size();i++){
			B_Student stu = array.get(i);  //这里就用B_Student类型来接收了
			System.out.println(stu.getName()+"------"+stu.getAge());//一般都是通过get方法来输出对象属性值
			
		}
		
		
	}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值