仅供个人学习,如有侵权请联系删除。
需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息。
Student[] arr = new Student[5]; //存储学生对象
arr[0] = new Student("张三", 23);
arr[1] = new Student("李四", 24);
arr[2] = new Student("王五", 25);
arr[3] = new Student("赵六", 26);
arr[4] = new Student("马哥", 20);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
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() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}
public static void main(String[] args) {
//int[] arr = new int[5]; //创建基本数据类型数组
Student[] arr = new Student[5]; //创建引用数据类型数组
arr[0] = new Student("张三", 23); //创建一个学生对象,存储在数组的第一个位置
arr[1] = new Student("李四", 24); //创建一个学生对象,存储在数组的第二个位置
arr[2] = new Student("王五", 25); //创建一个学生对象,存储在数组的第三个位置
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
案例演示
基本功能演示
boolean add(E e)
boolean remove(Object o)
void clear()
boolean contains(Object o)
boolean isEmpty()
int size()
ArrayList的父类的父类重写toString方法,所以在打印对象的引用的时候,输出的结果不是Object类中toString的结果
public static void main(String[] args) {
//demo1();
demo2();
}
private static void demo2() {
ArrayList c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
c.add("d");
//c.remove("b"); //删除指定元素
//c.clear(); //清空集合
System.out.println(c.contains("b")); //判断是否包含
System.out.println(c.isEmpty());
System.out.println(c.size()); //获取元素的个数
System.out.println(c);
}
/*
true
false
4
[a, b, c, d]
*/
public static void demo1() {
Collection c = new ArrayList(); //父类引用指向子类对象
//通常用的是ArrayList list = new ArrayList();,此时仅仅为了使用List类中的方法
boolean b1 = c.add("abc");
boolean b2 = c.add(true); //自动装箱new Boolean(true);
boolean b3 = c.add(100);
boolean b4 = c.add(new Student("张三",23));
boolean b5 = c.add("abc");
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);
System.out.println(b4);
System.out.println(b5);
System.out.println(c.toString());
}
/*
true
true
true
true
true
[abc, true, 100, Student [name=张三, age=23], abc]
在Student类中重写了toString方法,否则用的是Object中的toString方法。
*/
集合的遍历
public static void main(String[] args) {
demo1();
//demo2();
}
private static void demo2() {
Collection c = new ArrayList();
c.add(new Student("张三", 23)); //Object obj = new Student("张三",23);
c.add(new Student("李四", 24));
c.add(new Student("王五", 25));
c.add(new Student("赵六", 26));
Object[] arr = c.toArray(); //将集合转换成数组
for (int i = 0; i < arr.length; i++) {
//System.out.println(arr[i]);
Student s = (Student)arr[i]; //向下转型
System.out.println(s.getName() + "..." + s.getAge());
}
}
/*
张三...23
李四...24
王五...25
赵六...26
*/
public static void demo1() {
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
c.add("d");
Object[] arr = c.toArray(); //将集合转换成数组
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
/*
a
b
c
d
*/
带All的功能演示
boolean addAll(Collection c) //将C集合中的元素加入到本集合中
boolean removeAll(Collection c) //移除本集合中包含C中的元素,如果c中的元素本集合中没有,则不删除。
boolean containsAll(Collection c) //判断c集合中的元素是否都在本集合中
boolean retainAll(Collection c) //取交集,如果调用的集合改变就返回true,如果调用的集合不变就返回false
public static void main(String[] args) {
demo1();
//demo2();
//demo3();
//demo4();
}
public static void demo4() {
Collection c1 = new ArrayList();
c1.add("a");
c1.add("b");
c1.add("c");
c1.add("d");
Collection c2 = new ArrayList();
c2.add("a");
c2.add("b");
c2.add("c");
c2.add("d");
c2.add("e");
c2.add("f");
//取交集,如果调用的集合改变就返回true,如果调用的集合不变就返回false
boolean b = c1.retainAll(c2); //取交集
System.out.println(b);
System.out.println(c1);
/*
* false
[a, b, c, d]
* */
}
public static void demo3() {
Collection c1 = new ArrayList();
c1.add("a");
c1.add("b");
c1.add("c");
c1.add("d");
Collection c2 = new ArrayList();
c2.add("a");
c2.add("b");
c2.add("z");
boolean b = c1.containsAll(c2); //判断调用的集合是否包含传入的集合
System.out.println(b);
//false
}
public static void demo2() {
Collection c1 = new ArrayList();
c1.add("a");
c1.add("b");
c1.add("c");
c1.add("d");
Collection c2 = new ArrayList();
c2.add("a");
c2.add("b");
c2.add("z");
boolean b = c1.removeAll(c2); //删除的是交集
System.out.println(b);
System.out.println(c1);
/*
true
[c, d]
* */
}
public static void demo1() {
Collection c1 = new ArrayList();
c1.add("a");
c1.add("b");
c1.add("c");
c1.add("d");
Collection c2 = new ArrayList(); //alt + shift + r改名
c2.add("a");
c2.add("b");
c2.add("c");
c2.add("d");
//c1.addAll(c2);
//将c2中的每一个元素添加到c1中,[a, b, c, d, [a, b, c, d]]
c1.add(c2);
//将c2看成一个对象添加到c1中,[a, b, c, d, a, b, c, d]
System.out.println(c1);
}
迭代
迭代器概述
集合是用来存储元素,存储的元素需要查看,那么就需要迭代(遍历)
public static void main(String[] args) {
//demo1();
demo2();
}
public static void demo2() {
Collection c = new ArrayList();
c.add(new Student("张三", 23)); //Object obj = new Student("张三",23);
c.add(new Student("李四", 24));
c.add(new Student("王五", 25));
c.add(new Student("赵六", 26));
//获取迭代器
Iterator it = c.iterator();
while(it.hasNext()) {
//System.out.println(it.next());
Student s = (Student)it.next(); //向下转型
System.out.println(s.getName() + "..." + s.getAge());
}
}
/*
张三...23
李四...24
王五...25
赵六...26
*/
public static void demo1() {
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
c.add("d");
//对集合中的元素迭代(遍历)
Iterator it = c.iterator(); //获取迭代器
/*boolean b1 = it.hasNext(); //判断集合中是否有元素,有就返回true
Object obj1 = it.next();
System.out.println(b1);
System.out.println(obj1);
boolean b2 = it.hasNext(); //判断集合中是否有元素,有就返回true
Object obj2 = it.next();
System.out.println(b2);
System.out.println(obj2);*/
while(it.hasNext()) {
System.out.println(it.next());
}
}
/*a
b
c
d
*/