Java SE 集合容器

1、List

List接口下面的两个实现类

ArrayList

LinkedList

package practice;

import java.util.ArrayList;
import java.util.List;

public class TestList {
    public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        list.add("grape");
        list.add("apple");
        System.out.println(list); //[apple, banana, orange, grape, apple]
    }
}

列表可以存放重复的数据,按照我们存储的顺序进行存储(ArrayList和LinkedList同理)

ArrayList内存模式图

在这里插入图片描述

LinkedList内存模式图

在这里插入图片描述

ArrayList查找效率比较高

LinkedList删除、新增效率高

List常用的操作
1、add() 添加元素
2、remove()删除元素
package container;

import java.util.ArrayList;
import java.util.List;

    public class TestList {
        public static void main(String[] args) {
            List list = new ArrayList<>();
            list.add("apple");
            list.add("banana");
            list.add("orange");
            list.add("grape");
            list.add("apple");
            System.out.println(list); //[apple, banana, orange, grape, apple]
            list.remove("banana");
            System.out.println(list); //[apple, orange, grape, apple]
        }
3、size() 列表中装了多少个元素
package container;

import java.util.ArrayList;
import java.util.List;

    public class TestList {
        public static void main(String[] args) {
            List list = new ArrayList<>();
            list.add("apple");
            list.add("banana");
            list.add("orange");
            list.add("grape");
            list.add("apple");
            System.out.println(list); //[apple, banana, orange, grape, apple]
            System.out.println(list.size()); //5
        }
    }

4、get(i)从列表中获取到某个元素

列表的下标也是从0开始

package container;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class TestList {
        public static void main(String[] args) {
            List list = new ArrayList<>();
            list.add("apple");
            list.add("banana");
            list.add("orange");
            list.add("grape");
            list.add("apple");
            System.out.println(list); //[apple, banana, orange, grape, apple]
            String string = (String) list.get(0);
            System.out.println(string);//apple
        }
    }
5、contains 判断容器中是否有xxx东西
package container;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class TestList {
        public static void main(String[] args) {
            List list = new ArrayList<>();
            list.add("apple");
            list.add("banana");
            list.add("orange");
            list.add("grape");
            list.add("apple");
            System.out.println(list); //[apple, banana, orange, grape, apple]
            System.out.println(list.contains("grape")); //true
            System.out.println(list.contains("pineapplepineapple")); //false
        }
    }
遍历列表
for(int i = 0; i < list.size();i++){
    System.out.println(list.get(i));
}
for(Object obj : list){
	System.out.println(obj);
}

2、Set集合

两个实现类

HashSet

无序,不重复

package container;

import java.util.HashSet;
import java.util.Set;

public class SetTest {
    public static void main(String[] args) {
        Set set = new HashSet();
        set.add("blue");
        set.add("red");
        set.add("yellow");
        set.add("red"); //重复的数据加不进去
        System.out.println(set);//[red, blue, yellow]
    }
}

TreeSet

默认进行排序,不重复

package container;

import java.util.Set;
import java.util.TreeSet;

public class SetTest {
    public static void main(String[] args) {
        Set set = new TreeSet();
        set.add(14);
        set.add(2);
        set.add(2);//重复的数据加不进去
        set.add(666);
        set.add(1);
        System.out.println(set);//[1, 2, 14, 666]
    }
}
Set的操作
add()添加元素
remove() 删除元素
size()元素中的个数
contains() 是否包含某个元素

3、Map容器(不是从collection中继承下来的)

key -> value

两个常用的实现类

HashMap

package container;

import java.util.Map;
import java.util.HashMap;

public class TestMap {
    public static void main(String[] args) {
        Map map = new HashMap();
        map.put("red","红色");
        map.put("blue","蓝色");
        map.put("yellow","黄色");
        System.out.println(map);//{red=红色, blue=蓝色, yellow=黄色}
    }
}

TreeMap:根据key排序

import java.util.Map;
import java.util.TreeMap;

public class TestMap {
    public static void main(String[] args) {
        Map map = new TreeMap();
        map.put(1,"红色");
        map.put(3,"蓝色");
        map.put(2,"黄色");
        System.out.println(map);//{1=红色, 2=黄色, 3=蓝色}
    }
}
Map的操作
1、put(key,value) 存储数据
2、remove(key) 删除数据
3、size() 存储了多少个键值对
4、containsKey() 是否包含了某个key
5、containsValue() 是否包含了某个value
6、如果put了相同的key,之前的东西会被代替掉
7、keySet() 把map中所有的key打包成set集合返回
8、get(key) 通过key查询value
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值