java基础笔记(二)集合框架

java基础笔记(二)集合框架,第1张

java基础笔记(二)集合框架
1.Collection父接口
集合表示一组被称为其元素的对象
这个是父类接口,子类有List,Map,Set;
(增加的元素为字符串,数字等等这些单独的个体)
1.增加元素:
 Collection collection = new ArrayList();
        collection.add("苹果手机");
        collection.add("华为手机");
        collection.add("小米手机");
        System.out.println(collection);
        //[苹果手机, 华为手机, 小米手机]
2.删除元素
Collection collection = new ArrayList();
        collection.add("苹果手机");
        collection.add("华为手机");
        collection.add("小米手机");
        collection.remove("苹果手机");//只能删除具体的元素内容
        collection.remove(2);//不能用下标来删除元素
        System.out.println(collection);  
        //[华为手机, 小米手机]   
3.遍历元素:
方法一:增强for
Collection collection = new ArrayList();
        collection.add("苹果手机");
        collection.add("华为手机");
        collection.add("小米手机");
        for (Object object:collection
             ) {//为什么这里是Object,不能是其他,比如int类型
             //因为集合是一个对象,这个对象包含着一些元素;
            System.out.println(object);
        }  
//苹果手机
//华为手机
//小米手机   
方法二:迭代器
 Iterator iterator = collection.iterator();
 //用collection接口的实例对象调用iterator方法;
 //iterator方法返回的是一个iterator接口,它有自己的实现类;
 //有3个方法:
 // hasNext(),返回的是Boolean类型的,判断是否还有迭代的元素;
 // next(),返回迭代的元素;
 // remove(),删除元素,不用传参,默认删除元素最后一位
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        } 
(增加的类型为类的实例对象)
也就是往集合里面塞对象进去;
1.增加数据
 Collection collection = new ArrayList();
        Student s1 = new Student("张三", 18);
        Student s2 = new Student("李四", 19);
        Student s3 = new Student("王五", 20);
        collection.add(s1);
        collection.add(s2);
        collection.add(s3);
        System.out.println(collection);
//[com.qfedu.springboot.demo.Student@38af3868, 
//com.qfedu.springboot.demo.Student@77459877,
 //com.qfedu.springboot.demo.Student@5b2133b1]     
2.删除数据
System.out.println(collection.size());//3
        collection.remove(s2);
        System.out.println(collection.size());//2
        collection.remove(1);
        //说明不能用下标来删除,只能用实例对象来删除;
        System.out.println(collection.size());  //2 
        collection.clear();//清空元素的元素;
        System.out.println(collection.size());//0
3.遍历数据
1.增强for
2.迭代器
//跟普通的遍历没啥区别,一样的套路;        
2.List接口
特点:有序,有下标,可重复
1.增加元素:
  List list = new ArrayList();
        list.add("张三");
        list.add("张四");
        list.add("张五");
        System.out.println(list);
2.删除元素:
	list.remove(2);
    list.remove("张三");
    System.out.println(list);//张四
    //List接口可以用下标的方式和具体的元素内容来进行删除;
3.遍历元素:
 方法一:使用for循环
 //调用list接口里面的get方法,
 //此方法返回此列表中指定位置的元素。
 for (int i = 0; i < 3; i++) {
            System.out.println(list.get(i));
        }  
//张三
//张四
//张五  
方法二:使用增强for;
方法三:使用迭代器;
方法四:使用列表迭代器(Collection没有)
ListIterator listIterator = list.listIterator();
//调用列表迭代器方法,赋值变量;
 while (listIterator.hasNext()){
   System.out.println(listIterator.nextIndex()+":"+listIterator.next());
0:张三
1:张四
2:张五
//列表迭代器跟一般迭代器的区别就是:可以从前往后,从后往前迭代;
ListIterator listIterator = list.listIterator();
  while (listIterator.hasNext()){
     System.out.println(listIterator.nextIndex()+":"+listIterator.next());
        }
  while (listIterator.hasPrevious()){
     System.out.println(listIterator.previousIndex()+":"+listIterator.previous());
        }
        }
这里需要先顺序迭代,然后才能逆向迭代,不能直接逆向;
我思考的是顺序迭代到最后一位,指针停在最后了,所以才可以进行逆向,
不然直接逆向,指针在最前面,你怎么逆向也没用,
不知道对不对,有看到的大佬可以指定,以后再回头来改吧。
           
//集合是不能增加基本类型的元素的,这里有装箱和拆箱;
//将int类型变成integer类型;
 List list = new ArrayList();
        list.add(20);
        list.add(30);
        list.add(40);
        System.out.println(list);
 返回一个集合的方法 subList()
 List list = new ArrayList();
        list.add(20);
        list.add(30);
        list.add(40);
        List list1 = list.subList(0, 1);
        //左闭右开,返回0到1之间的集合,
        //所以是20
        System.out.println(list1); //[20]      
3.List实现类ArrayList

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4829169.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-10
下一篇 2022-11-10

发表评论

登录后才能评论

评论列表(0条)

保存