java之集合类型ArrayList,HashMap,HashSet

常用数据集合:List,Map,Set 这三种集合都是用来操作数据的,比如数组也是一种集合

List:ArrayList  ,  ArrayList是list接口的其中一个实现类,调用方法前都要生成一个ArrayList对象,下面两个集合类型也是一样的

List和Set这两个接口都是继承了collection(集合)接口,collection又继承了Iterable(可迭代)接口,所以List和Set类的对象都能拿到Iterator(迭代器)方法

List和Set两个类的集合都可以通过增强for循环进行遍历

ArrayList容器支持的数据类型:引用类型

容器特点:

1.数据排列——有序性,支持索引

2.数据重复性——可重复

package com.my.packge4;

import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
//        ArrayList<Integer> list = new ArrayList<Integer>();//int对应的引用类型是Integer(包装类型)
        ArrayList<String> list = new ArrayList<String>();
        //查看这个list的大小,元素个数
//        System.out.println(list.size());
        //判空
//        System.out.println(list.isEmpty());
        list.add("张三");
        list.add("李四");
        list.add("王五");
        //判断是否包含某个值
//        System.out.println(list.contains("张三"));
        //修改数据,要换的数据的索引,和换后的值
        list.set(0,"哈哈");
        //判空
//        System.out.println(list.isEmpty());
//        System.out.println(list.size());
        //通过get方法,传入下标取值
//        System.out.println(list.get(1));
//        list.remove("王五");
        //删除list中的数据,可以通过索引或者直接输入需要删除的值
//        String list_del = list.remove(0);
//        System.out.println(list_del);
//        System.out.println(list.size());
//        ArrayListDemo demo = new ArrayListDemo();
        for (String name:list){
            System.out.println(name);
        }


    }
}

 

Map:HashMap

 容器特点:

1.以键值对形式来保存数据

2.键值不可以重复,重复时,后者键值对覆盖前者

键和值的数据类型支持:引用类型

package com.my.packge4;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

//Map以键值对形式保存数据
public class HashMapDemo {
    public static void main(String[] args) {
        HashMap<String,String> haMap = new HashMap<String,String>();
        System.out.println(haMap.size());
        haMap.put("name","小赵");
        haMap.put("age","18");
        //通过key获取值
        String name = haMap.get("name");
        String age = haMap.get("age");
        System.out.println(name);
        System.out.println(age);
        //通过键移除数据,返回的是移除的数据对象
        haMap.remove("name");
        //获取所有的key,集合是Set是因为键都是唯一的,不能重复的,所以就不是list集合
        Set<String> keys = haMap.keySet();
        //遍历输入所有的key
        for (String key:keys){
            System.out.println(key);
        }
        //获取所有的值
        Collection<String> values = haMap.values();
        //遍历输入所有的value
        for (String value:values){
            System.out.println(value);
        }
        //第二种遍历方法
        //遍历整个键值对
        Set<String> keyss = haMap.keySet();
        for (String key2:keyss){
            String value2 = haMap.get(key2);
            System.out.println("key:"+key2+"value:"+value2);
        }
        //第三种遍历方法
        //Entry代表的也是key,value, Map.Entry<String,String> 作为一个类型
        Set<Map.Entry<String,String>> entries = haMap.entrySet();
        for (Map.Entry<String,String> entri:entries){
            System.out.println("key:"+entri.getKey()+"value:"+entri.getValue());
        }

    }
}

 

Set:HashSet

容器支持的数据类型:引用类型

 容器特点:

1.数据排列——无序性

2.数据重复性——不可重复

 

8大数据基本类型的包装类型

 

package com.my.packge4;

import java.util.HashSet;
import java.util.Iterator;

public class HashSetDemo {
    public static void main(String[] args) {
        HashSet<String> hset = new HashSet<String>();
        //获取集合的大小
        System.out.println(hset.size());
        //添加数据到集合中,如果数据是重复,会去重
        hset.add("java");
        hset.add("python");
        System.out.println(hset.size());
        //判空
        System.out.println(hset.isEmpty());
        //是否包含
        System.out.println(hset.contains("java"));
        //删除集合中的数据,因为是无序的,所以只能通过数据名删除
        hset.remove("java");
        //要删所有的就用clear
//        hset.clear();
        hset.add("java");
        hset.add("php");
        //hashset没有提供数组get方法,所以先要把hset转成数组对象,然后再取里面的值
        Object[] objects = hset.toArray();
        //通过增强for循环遍历,不能在遍历时移除或者操作数据
        for (Object ob:objects){
            System.out.println(ob);
        }
        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        //遍历set集合,需要导入Iterator类
        Iterator<String> ite = hset.iterator();  //获取迭代器
        while (ite.hasNext()){//如果集合中有数据就用hasNext
            System.out.println(ite.next());
        }



    }
}

 

posted @ 2021-03-30 19:59  小boboa  阅读(141)  评论(0编辑  收藏  举报