码迷,mamicode.com
首页 > 编程语言 > 详细

java 集合

时间:2018-08-03 22:41:44      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:str   new   元素   for   https   jin   sdn   obj   引用   

1. java集合框架图

技术分享图片

图片来源  https://blog.csdn.net/u010887744/article/details/50575735

2. 迭代器

Iterator:迭代器,它是Java集合的顶层接口(不包括 map 系列的集合,Map接口 是 map 系列集合的顶层接口)

使用场景:只要实现了Iterable接口的类,就可以使用Iterator迭代器,注意:map系列集合不能够使用迭代器

迭代器函数:

Object next():返回迭代器刚越过的元素的引用,返回值是 Object,

Iterator<Student> it = arr.iterator();  // 这样使用时可以不强制类型转换

boolean hasNext():判断容器内是否还有可供访问的元素

void remove():删除迭代器刚越过的元素

3. 集合遍历的三种方法:

    public static void main(String[] args) {
        ArrayList<Student> arr = new ArrayList<Student>();
        Student s1 = new Student("linqinxia", 216);
        Student s2 = new Student("diaochan", 78);
        Student s3 = new Student("wnagjing", 78);
        Student s4 = new Student("wnagjun", 88);

        arr.add(s1);
        arr.add(s2);
        arr.add(s3);
        arr.add(s4);
        // 方法1:迭代器遍历
        Iterator<Student> it = arr.iterator();
        while (it.hasNext()) {
            Student s = it.next();
            System.out.println(s.getName() + "---" + s.getAge());
        }
        // 方法2:增强for 遍历
        for (Student m : arr) {
            System.out.println(m.getName() + "----" + m.getAge());
        }
        // 方法3:使用for 循环遍历
        for (int x = 0; x < arr.size(); x++) {
            Student s = (Student) arr.get(x);
            System.out.println(s.getName() + "----" + s.getAge());
        }
    }

4. collection 接口方法:

public static void main(String[] args) {
        Collection<Person> c1 = new ArrayList<Person>();
        Collection<Student> c2 = new ArrayList<Student>();
        Collection<Student> c3 = new ArrayList<Student>();
        Person p1 = new Person();
        Person p2 = new Person();
        Person p3 = new Person();
        Student s1 = new Student("wangjing", 20);
        Student s2 = new Student("wangjun", 21);
        Student s3 = new Student("xiaoha", 19);
        Student s4 = new Student("wangjing", 20);
        c1.add(p1);                //1. add(#):添加一个元素                    
        c1.add(p2);
        c1.add(p3);
        c2.add(s1);
        c2.add(s2);
        c2.add(s3);
        c3.add(s4);
        c1.addAll(c2);            //2. addAll(Collection<? extends E>):添加另一个集合中所有的元素
        System.out.println(c1.size());
        c1.clear();                //3. clear():清除集合中所有的元素
        System.out.println(c1.size());
        System.out.println(c2.contains(s2));    //4. contains(Object):判断该元素是否在集合中
        System.out.println(c2.containsAll(c3));    //5. containsAll(Collection<? extends E>):判断输入集合所有元素是否在该集合中
        c3.add(s2);
        c3.add(s3);
        System.out.println(c2.equals(c3));        //6. equals(Object):判断两个集合中所有的元素是否相等,只需要判断c2中的每一个元素是否equals c3中的一个元素,equals可以重写
        System.out.println(c2.hashCode());        //7. hashCode():返回集合的hashCode编码
        Iterator<Student> it = c2.iterator();    //8. iterator():返回集合的迭代器
        while(it.hasNext()) {
            Student s = it.next();
            System.out.println(s.getName() + ":" + s.getAge());
        }
        System.out.println(c2.parallelStream());    //9. parallelStream():返回java.util.stream.ReferencePipeline$Head@5c647e05
        c2.remove(s2);                            //10. remove(Object):删除一个元素
        System.out.println(c2.size());
        c2.add(s2);
        c2.removeAll(c3);                    // 11. removeAll(Collection<?>) 
        System.out.println(c2.size());
        c2.size();                            //12. c2.size():返回集合的大小
        c2.add(s1);
        c2.add(s2);
        c2.add(s3);
        Student[] s = c2.toArray(new Student[0]);    //13 将集合转换成数组,强制类型转换不能针对多对象    数组转集合的方法:List<String> mlist = Arrays.asList(array);
        System.out.println(s[1].getName());
    }

 

java 集合

标签:str   new   元素   for   https   jin   sdn   obj   引用   

原文地址:https://www.cnblogs.com/feng-ying/p/9416425.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!