Java——集合

集合的体系结构:

1.List集合:

1.1 特点:

(1) 它是单列集合体系之一;

(2) List集合和它的实现类全部有索引;

(3) 可以存储重复元素;

(4) List集合和它的实现类的元素存取有序。

1.2 特有方法:

void add(int index,E e)——向集合中指定索引位置添加元素

E remove(int index)——删除指定索引处的元素并返回

E set(int index,E e)——修改指定索引处的元素,返回被修改的元素

E get(int index)——获取指定索引处的元素

1.3 遍历:

(1) 用迭代器进行遍历;

(2) 用普通for循环进行遍历;

(3) 用加强for进行遍历。

代码如下:

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

public class ListDemo {
    public static void main(String[] args) {
        List<Integer> l = new ArrayList<Integer>();
        l.add(1);
        l.add(6);
        l.add(8);
        l.add(9);
        l.add(15);
//        迭代器遍历
        ListIterator<Integer> it = l.listIterator();
        while (it.hasNext()) {
            Integer i = it.next();
            System.out.println(i);
        }
        System.out.println("--------");
//        普通for循环遍历
        for (int i = 0; i < l.size(); i++) {
            Integer i1 = l.get(i);
            System.out.println(i1);
        }
        System.out.println("--------");
//        增强for遍历
        for (Integer i2 : l) {
            System.out.println(i2);
        }
    }
}

运行结果如下:

2.Set集合: 

2.1 特点:

(1) 元素存储无序;

(2) 不可以重复存储元素;

(3) 没有索引。

2.2 HashSet:

特点:

(1) HashSet不能保证数据有序

(2) HashSet数据是不能重复的

(3) HashSet是可以存储null值

(4) 底层是哈希表

(5) 没有索引

电脑中:

内存:高速存储、访问快,数据不能持久 磁盘:存储() 能持久化

2.3 LinkedHashSet:

特点:

(1) 是HashSet集合的子类;

(2) 不能存储重复元素;

(3) 能保证存储元素有序。

2.4 TreeSet:

特点:

(1) 不能存储重复元素;

(2) 存储元素有序;

(3) 没有索引。

排序:

(1) 自然排序Comparable;

(2) 比较器排序Comparabor。

3.Map:

3.1 特点:

(1) 键值对映射关系;

(2) 一个键对应一个值;

(3) 键不能重复;

(4) 元素存储无序。

3.2 常用方法:

V put(K k,V v)——向集合中添加一对元素
V remove(K k)——根据键删除键值对元素
void clear()——清空集合
boolean containsKey(K k)——判断集合中是否包含指定的键
boolean containsValue(V v)——判断集合中是否包含指定的值
boolean isEmpty()——判断集合是否为空
int size()——获取集合的长度

3.3 常用的获取方法 :

V get(K k)——根据键获取值

Set<K>keyset()——获取所有的键,保存到Set集合中

Collection<V>values——获取所有的键,保存到Collection集合中

Set<Map.Entry<K,V>>entrySet()——获取所有键值对,封装成Entry对象

 3.4 遍历:

第一种:

(1) 通过keySet()方法获取所有键的集合

(2) 遍历键的集合,拿到每一个键

(3) 通过get()方法,通过键获取值

第二种:

(1) 获取所有键值对对象的集合,使用entrySet()实现

(2) 遍历键值对对象集合,拿到每一个键值对对象

(3) 调用键值对对象中的getKey()和getValue()方法获取键和值

代码如下:

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

public class Demo {
    public static void main(String[] args) {
        Map<Integer,Integer> m = new HashMap<Integer,Integer>();
        m.put(1,1);
        m.put(2,2);
        m.put(5,5);
//        第一种
        Set<Integer> keySet = m.keySet();
        for (Integer key : keySet) {
            Integer value = m.get(key);
            System.out.println(key+","+value);
        }
        System.out.println("--------");
//        第二种
        Set<Map.Entry<Integer, Integer>> entrySet = m.entrySet();
        for (Map.Entry<Integer, Integer> map : entrySet) {
            Integer key = map.getKey();
            Integer value = map.getValue();
            System.out.println(key+","+value);
        }
    }
}

运行结果如下:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值