JAVA——foreach的学习(泛型和数组的例子)

  • Post author:
  • Post category:java


关于foreach,我简单的百度了一下,看到这个人写的还不错,截图了一下

在这里插入图片描述
链接在这里:

https://www.cnblogs.com/SzBlog/p/5403683.html

由于是第一次碰到,我简单的实验了一下,至于碰到的地方,是我在JDBC的学习的时候的第五部分的知识点

  1. foreach只能遍历值,不能改变值,这是关键点
  2. 然后我们遍历的本质都是对集合中的元素进行遍历,不论是数组还是泛型,本质都是一个集合

先从简单的尝试吧


数组


下面是我写的代码

public class Foreach {
	public static void main(String[] args) {
		int a[]={10,9,8,7,6,5,4};
		for (int i : a) {
			System.out.println(i);
		}
	}
}

在这里插入图片描述

所以说基本格式就是这样的,看上面的标注。

下面是用泛型做的实验,在做这个之前,我专门写了一个People类。

People的源代码,看下面

public class People {
	private String name;
	private String sex;
	private int age;
	//构造方法
	public People(String name, String sex, int age) {
		super();
		this.name = name;
		this.sex = sex;
		this.age = age;
	}	
}

没有用set和get,就只是简单的写了一个重载!

通过这个类,我写了一个关于People的泛型

代码如下:

import java.util.ArrayList;

public class List {
	public static void main(String[] args) {
		//定义一个Book类型的
		ArrayList<People> ListPeople=new ArrayList<People>();
		for(int i=0;i<5;i++){
			//通过for循环创造五个人对象,这个对象有三个属性
			People people=new People("张三"+i+"号","男",i+10);
			//依次把这五个对象写进
			ListPeople.add(people);
		}
		for (People people : ListPeople) {
			System.out.println(people);
		}
	}
}

然后执行的效果是这样的,看下图

在这里插入图片描述
真的非常的纳闷,输出来的一堆看不懂的东西。

仔细看了一下,同数组是一样的,我们输出的是这个集合中的每个元素,在泛型中,我们是把每个对象存进去的,所以输出的就是这个对象,但是我想要的输出的结果是对象中的元素。

这里就要用到一个toString()方法

在这里插入图片描述
会在People中生成这样一段代码

@Override
	public String toString() {
		return "People [name=" + name + ", sex=" + sex + ", age=" + age + "]";
	}

作用就是输出People类创建的对象的时候,把对象的输出改成对这个对象中的元素的输出

在这里插入图片描述
所以我们写入了这个方法之后,在foreach中的输出people对象的时候,获得的就是这个对象中的元素的文字说明。

最终就得到我想要的结果了。

在这里插入图片描述

main函数的完整代码以及People类的完整代码如下:

import java.util.ArrayList;

public class List {
	public static void main(String[] args) {
		//定义一个Book类型的
		ArrayList<People> ListPeople=new ArrayList<People>();
		for(int i=0;i<5;i++){
			//通过for循环创造五个人对象,这个对象有三个属性
			People people=new People("张三"+i+"号","男",i+10);
			//依次把这五个对象写进
			ListPeople.add(people);
		}
		for (People people : ListPeople) {
			System.out.println(people);
		}
	}
}

===========================================================================================

public class People {
	private String name;
	private String sex;
	private int age;
	//构造方法
	public People(String name, String sex, int age) {
		super();
		this.name = name;
		this.sex = sex;
		this.age = age;
	}
	@Override
	public String toString() {
		return "People [name=" + name + ", sex=" + sex + ", age=" + age + "]";
	}
	
}



版权声明:本文为qq_43918130原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。