18基本类型包装类_集合入门

18基本类型包装类_集合入门

导语:

think after i wang to write

  1. CollectionDemo
  2. CollectionDemo2
  3. IteratorDemo
  4. CollectionTest
  5. ListDemo
  6. Student

1. CollectionDemo

package cn.itcast.api.c.collection;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    public class CollectionDemo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
    
    //        Collection coll = new ArrayList();//目前演示Collection的方法,不关系子类对象的类型是什么。
    //        collectionDemo(coll);
    
            Collection c1 = new ArrayList();
            Collection c2 = new ArrayList();
            collectionDemo2(c1, c2);
    
        }
    
    //    演示Collection中带all方法 。
        public static void collectionDemo2(Collection c1,Collection c2){
    
            //1,给两个集合添加元素。
            c1.add("abc1");
            c1.add("abc2");
            c1.add("abc3");
    
            c2.add("abc1");
            c2.add("abc4");
            c2.add("abc5");
    
            //添加所有c2的元素到c1中。
    //        c1.addAll(c2);
    
    //        boolean b = c1.containsAll(c2);
    //        System.out.println("b="+b);
    
            //删除c1中所有和c2相同的元素。
    //        c1.removeAll(c2);
    
            //保留了c1中和c2相同的元素。
            c1.retainAll(c)ll(c2);
    
            //打印。
            System.out.println("c1="+c1);
    
        }
    
    //    演示Collection中常见的一般方法。
        public static void collectionDemo(Collection coll) {
    
            //1,往集合中添加对象元素。add(Object);
            coll.add("itcast1");
            coll.add("itcast2");
            coll.add("itcast3");
    
    
            //2,删除。
    //        coll.remove("itcast2");
    
            //3,判断是否包含。
            coll.contains("itcast11");
    
            //4,清除。
            coll.clear();
            //把集合打印一下。
            System.out.println(coll);//[itcast1, itcast2, itcast3]
    
        }
    
    } 


2.
CollectionDemo2

package cn.itcast.api.c.collection;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    public class CollectionDemo2 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
    
            Collection coll = new ArrayList();
    
            /*
             * 细节。
             * 1,集合中存储其实都是对象的地址。
             * 2,集合中可以存储基本数值吗?不行,但是jdk1.5以后可以这么写,但是存储的还是对象(基本数据类型包装类对象)。
             * 3,存储时提升了Object。取出时要使用元素的特有内容,必须向下转型。
             */
    
            //coll存储元素。
    //        coll.add("abc1");//存储的是对象的引用。
    
    //        coll.add(3);//coll.add(Integer.valueOf(3));//自动装箱。
    
    
            coll.add("itcast1");//Object obj = "itcast1";提升为了Object。
            coll.add("hehe");//
            coll.add("nba");
    
            for (Iterator it = coll.iterator(); it.hasNext();) {
    
                Object object = it.next();//取出来的都是Object。需要使用元素的特有方法时需要向下转型。
                String str = (String)object;
                System.out.println(str.length());
    
            }
        }
    
    } 


3.
IteratorDemo

package cn.itcast.api.d.iterator;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    public class IteratorDemo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            /*
             * 集合的取出方式。
             * 
             * 迭代器是Collection集合中通用的取出方式。
             * 
             */
            //1,创建集合对象。
            Collection coll = new ArrayList();
            coll.add("abc1");
            coll.add("abc2");
            coll.add("abc3");
            coll.add("abc4");
    
            /*//2.获取容器的迭代器对象。通过iterator方法。
            Iterator it = coll.iterator();
    
            //3,使用具体的迭代器对象获取集合中的元素。参阅迭代器的方法
            while(it.hasNext()){
                System.out.println(it.next());
            }*/
    
            for (Iterator it = coll.iterator(); it.hasNext();) {
    
    
            }
    
    
    //        System.out.println(it.next());
    //        System.out.println(it.next());
    //        System.out.println(it.next());
    //        System.out.println(it.next());
    //        System.out.println(it.next());//java.util.NoSuchElementException没有这个元素异常。
        }
    
    } 


4.
CollectionTest

package cn.itcast.api.e.test;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    import cn.itcast.domain.Student;
    
    
    public class CollectionTest {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            /*
             * 往集合中存储自定义的对象。
             */
    
            //1,创建集合对象。
            Collection coll = new ArrayList();
    
            //2,添加具体的学生元素
            Student stu = new Student("lisi1",21);
            coll.add(stu);
            coll.add(stu);
            coll.add(new Student("lisi2",22));
            coll.add(new Student("lisi3",23));
            coll.add(new Student("lisi3",23));
    
            /*
             * 什么是重复呢?都是有判断依据的。
             * 依据都是通过方法来完成的。
             * 
             */
    
    
            for (Iterator it = coll.iterator(); it.hasNext();) {
                Student student = (Student) it.next();
                System.out.println(student.getName());
            }
    
        }
    
    } 


5.
ListDemo

package cn.itcast.api.f.list;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    import cn.itcast.domain.Student;
    
    
    public class ListDemo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            /*
             * 使用List,解决,插入元素的问题。因为add方法追加。
             * List接口的特有方法,全都是围绕索引来定义的。
             * 
             * List获取元素的方式有两种:一种是迭代,一种 遍历+get
             * 
             * List接口是支持对元素进行curd增删改查动作的。
             * 
             */
            List list = new ArrayList();
    
            //1,添加元素。
            list.add(new Student("wangcai1",21));
            list.add(new Student("wangcai2",22));
            list.add(new Student("wangcai3",23));
    
            //2,插入元素。
    //        list.add(1, new Student("xiaoqiang",25));
    
            //3,删除元素。
    //        list.remove(2);//IndexOutOfBoundsException
    
    
            //3,修改元素。
            list.set(1, new Student("xiaoming",11));
    
    //        Object obj = list.get(1);
    //        System.out.println(obj);
            for (int i = 0; i < list.size(); i++) {
                System.out.println("get("+i+"):"+list.get(i));
            }
    
    //        for (Iterator it = list.iterator(); it.hasNext();) {
    //            Student stu = (Student) it.next();
    //            System.out.println(stu);
    //        }
    
    
        }
    
    } 


6.
Student

package cn.itcast.domain;
    
    public class Student {
    
        private String name;
        private int age;
    
        public Student() {
            super();
        }
    
        public Student(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
    
    
        /**
         * 建立学生对象判断相同的依据。覆盖equals方法,只要同姓名同年龄就是同一人。视为重复元素。
         * @return
         */
    
    
    
        public String getName() {
            return name;
        }
    
        @Override
        public boolean equals(Object obj) {
    
            if(this== obj)
                return true;
    
            if(!(obj instanceof Student)){
                throw new ClassCastException("类型错误");
            }
    
            Student stu = (Student)obj;
    
            return this.name.equals(stu.name) && this.age == stu.age;
        }
    
        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 + "]";
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值