2019-05-25 Java学习日记 day15

集合

对象数组的概述,使用

import java.security.acl.Permission;

import tan.jung.bean.Student;

public class demo1_Array {

    public static void main(String[] args) {
        //int arr=new int[5];  //创建基本数据类型数字
        Student [] arr=new Student[5]; //创建引用数据类型数字
        arr[0] = new Student("张三",20);//创建一个对象,存储在数字的第一个位置
        arr[1] = new Student("li三",19);
        arr[2] = new Student("不是三",21);
        arr[3] = new Student("mei",25);
        arr[4] = new Student("某人",30);
        
        for (int i = 0; i < arr.length; i++) {    
            String s1=String.valueOf(arr[i]);
            System.out.println(s1);
        }
    }

}
//第二个包
package tan.jung.bean;

public class Student {
    private String name;
    private int age;
    public Student() {
        super();
        // TODO Auto-generated constructor stub
    }
    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;
    }
    public Student(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    @Override
    public String toString() {
        return "Student [name=" + name + ", age=" + age + "]";
    }
    
}

集合的由来

  数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类

能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少

数组和集合的区别

 1:数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值

  集合只能存储引用数据类型(对象) 集合中也可以存储基本数据类型,

  但是在存储的时候会自动装箱编程对象100 new Integer(100)

 2:数组长度是固定的,態自动增长

  集合的长度是可变的,可以根据原始的增加而增加

数组和集合什么时候用

  如果元素个数是固定的推荐数组

  如果元素合数不是固定的推荐用集合

Collection集合

import java.util.ArrayList;
import java.util.Collection;

import tan.jung.bean.Student;

@SuppressWarnings({ "rawtypes", "unchecked" })
public class demo2_Collection {
    /*add方法如果是List集合一直都返回true,因为List集合中是可以存储重复元素的
        如果是set集合当存储重复元素的时候,就会返回flase
        
        ArrayList的父类的父类重写toString方法,所以在打印对象的时候,
        输出的结果不是Object类中toString的结果*/
    public static void main(String[] args) {
        //demo1();
        Collection c1=new ArrayList();
        c1.add("a");
        c1.add("c");
        c1.add("b");
        c1.add("d");
        c1.remove("a");//删除
        c1.clear();//清空
        System.out.println(c1.contains("a"));//判断是否包含
        System.out.println(c1.isEmpty());//判断是否为空
        System.out.println(c1.size());//获取元素的个数
        System.out.println(c1);
        
    }

    public static void demo1() {
        Collection c1=new ArrayList();//父类引用指向子类对象
        
        boolean b1=c1.add("woaixuexi");
        boolean b2=c1.add(true);
        boolean b3=c1.add(100);
        boolean b4=c1.add(new Student("张三",20));
        System.out.println(b1);
        System.out.println(b2);
        System.out.println(b3);
        System.out.println(b4);
        
        System.out.println(c1.toString());
    }

}
案例

集合遍历

package tan.jung.array;

import java.util.ArrayList;
import java.util.Collection;

import tan.jung.bean.Student;

public class demo3_Array {

    public static void main(String[] args) {
        Collection s1=new ArrayList();
        s1.add(new Student("战三",20)); //object oj=new Student("",);
        s1.add(new Student("战三",22));
        s1.add(new Student("战三",24));
        s1.add(new Student("战三",26));
        
        Object[] arr =s1.toArray(); //将集合转换成数字
        
        for (int i = 0; i < arr.length; i++) {
            Student s2=(Student)arr[i];//向下转型
            System.out.println(s2.getName()+","+s2.getAge());
        }

    }

}
练习题

Collection带All的功能

  boolean addAll(Collection c)

  boolean removeAll(Collection c)

  boolean containsAll(Collection c)

  boolean retainAll(Collection c)

import java.util.ArrayList;
import java.util.Collection;

public class demo4_Collection {

    @SuppressWarnings({ "rawtypes", "unchecked" })
    public static void main(String[] args) {
        //demo1();
        //demo2();
        //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("c");
        c2.add("d");
        c2.add("z");
        
        //如果调用的集合改变就返回true,如果调用的集合不变就返回false
        boolean b=c1.retainAll(c2); //取交集
        System.out.println(b);
        System.out.println(c1);
    }

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

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

    @SuppressWarnings({ "rawtypes", "unchecked" })
    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中
        c1.add(c2);         //将c2看成一个对象添加到c1中
        System.out.println(c1);
    }

}
案例

迭代器

  集合是用来存储元素,存储的元素需要查看,那么就需要迭代(遍历)

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

import tan.jung.bean.Student;

public class demo5_Iterator {

    public static void main(String[] args) {
        //demo1();
        Collection c1=new ArrayList();
        c1.add(new Student("李四",20)); //object oj=new Student("",);
        c1.add(new Student("s",20));
        c1.add(new Student("a",20));
        c1.add(new Student("tmenty",20));
        
        Iterator it=c1.iterator();
        while (it.hasNext()) {
            Student s1=(Student)it.next();
            System.out.println(s1.getName()+s1.getAge());
            
        }

    }

    public static void demo1() {
        Collection c1=new ArrayList();
        c1.add("a");
        c1.add("b");
        c1.add("c");
        c1.add("d");
        
        Iterator it=c1.iterator();
        /*boolean b1=it.hasNext(); //判断集合中是否有元素,有就返回true
        Object obj1=it.next();
        System.out.println(b1);
        System.out.println(obj1);*/
        
        while (it.hasNext()) {
            System.out.println(it.next());        
        }
    }

}
案例

猜你喜欢

转载自www.cnblogs.com/JungTan0113/p/10924938.html