java学习笔记-集合1

java学习笔记-集合1

1.集合概述

集合是一个长度可变的容器。

集合存储:只能存储引用数据类型 不可以存储基本数据类型 如果集合要存储基本数据类型,那么必须存储他们的包装类

package com.ustc.test5;

import java.util.ArrayList;

public class list {
    
    
    public static void main(String[] args) {
    
    
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(1);
        System.out.println(list1);
    }
}

2. 集合体系结构

单列集合:collection 双列集合:Map

单列集合下面还有:list(可以存储重复元素) 不想保留重复元素:Set 他们都是子接口

以上都是接口,需要实现类:

list实现类:ArrayList linkedList
set实现类:HashSet TreeSet

Map集合实现类:HashMap TreeMap

3. collection集合

	package com.ustc.test5;
	
	import java.util.ArrayList;
	import java.util.Collection;
	
	public class list {
    
    
	    public static void main(String[] args) {
    
    
	
	        //Collection 只是一个接口
	        Collection<String> collection = new ArrayList<>();
	        collection.add("aaa");
	        System.out.println(collection);
	        collection.add("bbb");
	        boolean result1 = collection.remove("aaa");
	        System.out.println(result1);
	
	        collection.add("ccccc");
	
	        //根据条件进行删除  将长度等于3的元素全部删除
	        //该方法的底层会遍历集合中的元素   将每一个元素放到lambda表达式中进行判断 返回的true 进行删除
	        collection.removeIf(
	                //小括号填写参数   大括号填写条件  长度等于3  lambda表达式
	                (String s)->{
    
    return s.length() == 3;}
	        );
	
	        System.out.println(collection);
	
	        //清空集合
	//        collection.clear();
	//        System.out.println(collection);
	
	
	        boolean a = collection.contains('1');//判断集合中是否存在该元素
	        System.out.println(a);
	
	        boolean b = collection.isEmpty();//判断集合是否为空
	        System.out.println(b);
	        
	    }
	}

4. 迭代器

迭代器:集合专用遍历方式

Iteratoriterator():返回集合中的迭代器对象,该迭代器对象默认指向当前集合的0索引

方法:

Boolean hasNext():判断当前位置是否有元素可以被取出

扫描二维码关注公众号,回复: 13358283 查看本文章

E next(): 获取当前位置的元素 将迭代器对象移向下一个索引位置

	package com.ustc.test5;
	
	import java.util.ArrayList;
	import java.util.Collection;
	import java.util.Iterator;
	
	public class list2 {
    
    
	    public static void main(String[] args) {
    
    
	        Collection<String>  list = new ArrayList<>();
	        list.add("a");
	        list.add("b");
	        list.add("c");
	        list.add("d");
	        //获取迭代器对象  默认指向0索引处   泛型与集合保持一致
	        Iterator<String > it = list.iterator();
	
	        //利用迭代器进行遍历
	        System.out.println(it.hasNext());  //0索引处 有元素  打印true
	        System.out.println(it.next());  //取出0索引处元素
	
	
	        while(it.hasNext()){
    
    
	            System.out.println(it.next());
	        }
	    }
	}

集合删除:删除一个元素 长度自动减一 后面的元素自动向前移动一个位置,所以删除相邻的相同元素,不能做到全部删除,所以这里使用迭代器进行删除

package com.ustc.test5;
	
	import java.util.ArrayList;
	import java.util.Collection;
	import java.util.Iterator;
	
	public class list2 {
    
    
	    public static void main(String[] args) {
    
    
	        ArrayList<String>  list = new ArrayList<>();
	        list.add("a");
	        list.add("b");
	        list.add("b");
	        list.add("c");
	        list.add("d");
	        
	        Iterator<String> it = list.iterator();
	        while(it.hasNext()){
    
    
	            String s = it.next();//取出当前元素
	            //判断当前元素是否等于b  是的话进行删除
	            if("b".equals(s)){
    
    
	                it.remove();  //使用迭代器进行删除 不要使用集合进行删除
	            }
	        }
	
	        System.out.println(list);
	    }
	}

5. 增强for循环

简化数组和Collection集合的遍历

1. 他是JDK5之后出现的,其内部的原理是一个iterator迭代器
2. 实现iterator接口的类才可以使用迭代器和增强for

增强for的格式:

For(元素数据类型变量名:数组或者Collection集合){

	//在此处使用变量即可,该变量即为元素
}
	package com.ustc.test5;
	
	import java.util.ArrayList;
	
	public class list3 {
    
    
	    public static void main(String[] args) {
    
    
	        ArrayList<String> list = new ArrayList<>();
	        list.add("a");
	        list.add("b");
	        list.add("c");
	        list.add("d");
	        list.add("e");
	        list.add("f");
	        list.add("g");
	
	        for(String s:list)
	        {
    
    
	            System.out.println(s);
	        }
	
	    }
	
	}

增强for的注意点  :   


String s是第三方变量  修改s 不会影响集合的值             


package com.ustc.test5;

import java.util.ArrayList;

public class list3 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");
        list.add("g");

        for(String s:list)
        {
            s= "ss";
            System.out.println(s);
        }

        System.out.println(list);

    }

}

猜你喜欢

转载自blog.csdn.net/qq_44653420/article/details/121479151
今日推荐