哈KK成长之路--集合框架

认识集合以及常用方法

认识集合

Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection接口又有三种子类型,List,Set和Queue,再下面是一些抽象类,最后是具体实现类,常用的有ArrayListLinkedList HashSet,LinkedHashSet,HashMap,LinkedHashMap等等。

	以下是集合框架体系图

集合框架体系

ArrayList

常用方法
常用方法

如何遍历输出一个ArrayList集合中的元素是十分重要且经常要用到的方法


ArrayList alist = new ArrayList();
alist.add(31);
alist.add("rapper虫儿飞")
alist.add("哦哈")
//循环遍历
for(int i=0;i<alist.size();i++){
	System.out.print(alist.get(i)+"\t");
}
System.out.println("--------------------------");

//增强for 循环
for (Object o:alist){
	System.out.print(o)
}
System.out.println("--------------------------");

//迭代器
Iterator it=alist.iterator();
while(it.hasNext()){
	System.out.print(it.next()+"\t");
}

LinkedList

存储原理是一个链表,在元素的前后分别有一个前置结点和后置结点,用于连接集合中的上一个元素和下一个元素,依次构成一条链式数据的集合。

LinkedList相比较于ArrayList特有的方法如下
void addFirst(Object o)  给指定元素插入当前集合头部
void addLastt(Object o)  给指定元素插入当前集合尾部
···  getFirst()  获取当前集合的第一个元素
···  getLast()  获取当前集合的最后一个元素
···  removeFirst() 移除并返回当前集合的第一个元素
···  removeLast() 移除并返回当前集合的最后一个元素

遍历输出LinkedList的方法和ArrayList的一样

Set

set接口的特点:存储一组唯一(不允许出现重复的元素),无序(没有index下标的)的对象,HashSet是Set接口常用的实现类。
HashSet set=new HashSet();

set.add("ni");
set.add(22);
//没有修改数据的方法

//删除数据
set.remove(22);
//只能获取所有元素--只能用增强for循环和迭代器Iterator输出
for (Object o:set){
	System.out.println(o)
}

Iterator it =set.iterator();
while(it.hasNext()){
	System.out.println(it.next());
}

JDK9版本加入新特性

这个新特性可以给集合一次性添加多个元素,方便了平时对增加元素的操作。

/*JDK9的新特性:
        List接口,Set接口,Map接口:里边增加了一个静态的方法of,可以给集合一次性添加多个元素
        static <E> List<E> of?(E... elements)
        使用前提:
            当集合中存储的元素的个数已经确定了,不在改变时使用
     注意:
        1.of方法只适用于List接口,Set接口,Map接口,不适用于接接口的实现类
        2.of方法的返回值是一个不能改变的集合,集合不能再使用add,put方法添加元素,会抛出异常
        3.Set接口和Map接口在调用of方法的时候,不能有重复的元素,否则会抛出异常
*/




  public static void main(String[] args) {
        List<String> list = List.of("a", "b", "a", "c", "d");
        System.out.println(list);//[a, b, a, c, d]
        //list.add("w");//UnsupportedOperationException:不支持操作异常
         //Set<String> set = Set.of("a", "b", "a", "c", "d");//IllegalArgumentException:非法参数异常,有重复的元素
        Set<String> set = Set.of("a", "b", "c", "d");
        System.out.println(set);
        //set.add("w");//UnsupportedOperationException:不支持操作异常
         //Map<String, Integer> map = Map.of("张三", 18, "李四", 19, "王五", 20,"张三",19);IllegalArgumentException:非法参数异常,有重复的元素
        Map<String, Integer> map = Map.of("张三", 18, "李四", 19, "王五", 20);
        System.out.println(map);//{王五=20, 李四=19, 张三=18}
        //map.put("赵四",30);//UnsupportedOperationException:不支持操作异常
    }

感谢evbd的阅读!!!希望有所帮助。

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值