Java笔记-Collection集合,Map

Collection集合

List

List:有序,可重复
List结构中具有的方法:

  • 增: add(E e);add(int index,E e);
  • 删: remove(Object obj);remove(int index);
  • 改: set(int index,E e);
  • 查: get(int index);
  • 其他:
    size(),clear(),contains(Object obj),toArray()
    iterator();isEmpty()
  1. ArrayList:底层由数组实现,查询快,增删慢
    ArrayList方法基本和List中定义的一模一样

  2. LinkedList:底层由链表实现,查询慢,增删快,可用于实现栈和队列。LinkedList除了和List接口中一样的方法之外,LinkedList提供了大量首末位操作的方法

  • 首末位增
    void addFirst(E e);
    void addLast(E e);
  • 首末位删
    E removeFirst();//删除首个元素,返回被删除的元素
    E removeLast();//删除尾部元素,返回被删除的元素
  • 首末位查
    E getFirst();
    E getLast();
  • stack栈操作
    E pop();
    void push(E e);
  • 首次和最后一次出现元素操作
    boolean removeFirstOccurrence(Object o)
    从此列表中移除第一次出现的指定元素(从头部到尾部遍历列表时)
    boolean removeLastOccurrence(Object o)
    从此列表中移除最后一次出现的指定元素(从头部到尾部遍历列表时)
  1. Vector:不常用,和ArrayList类似,但是Vector的空间增长是100%,ArrayList是50%。Vector是线程同步的,即一个时刻只有一个线程访问Vector,所以Vector访问速度比ArrayList。

Set

set:无序,唯一
HashSet:底层是哈希表+红黑树实现,无索引,不可以存储重复元素,存取无序
LinkedHashSet:底层是哈希表+链表实现,无索引,不可以储存重复元素,可以保证存取顺序
TreeSet:底层是二叉树实现,一般用于排序
集合接口:继承自Collection
List:元素有序,允许存储重复元素,有索引(可以使用for循环遍历)
Set:不允许有重复元素,没有索引(不能使用for循环遍历)
在这里插入图片描述

增强for循环

for (Integer e : linkedList)
{
    System.out.println(e);
}

Iterator迭代器

迭代器的使用:
1.使用集合中的方法ierator()获取迭代器的实现类对象,使用Iterator类接受构造对象
2.使用Iterator的hasnext()方法判断是否有下一个元素
3.使用Iterator的next()方法取出下一个元素

public class test01 {
    public static void main(String[] args) {
        Collection<String> coll = new ArrayList<>();
        coll.add("hello");
        coll.add("you");
        Iterator<String> it =coll.iterator();
        System.out.println(it.next());
        //使用迭代器遍历结合
        while(it.hasNext()){
        	String e = it.next();
			System.out.printl(e);
		}
    }
}

Map集合

map是将ket映射到value的集合,key不可以重复,value可以重复
常用方法:put(K,V),返回V remove(),返回被删除的值
遍历方法:
1.keySet():取出map中所有的key存放到set集合中,遍历set使用get(key)获得值
2.entrySet():在map中存在Entry对象(键值对对象)用于记录键和值,使用map.entrySet()把Map集合中的Entry对象取出存到Set中,再遍历set时使用Entry对象的getkey()和getvalue()方法获取键与值

Map<String,String>map=new hashmap<>()
String v1 = map.put("李晨","范冰冰");
String V2 = map.remove("李晨");
//map遍历方法一:使用keyset遍历
Set<String> set=map.ketset();
Iterator<string> it= set.iterator();
while(it.hasNext()){
	String key =map.getkey();
	Integer value =map.get(key);
	System.out.print(key+value);
}
//使用增强for遍历set
for(String key:map.keyset(){
.....
}

//map遍历方法二:使用Entry遍历
Set<Map.Entry<String,Integer>> set = map.entrySet();
Interator it = set.iterator();
String key =entry.getkey();
String value = entry.getvalue();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值