java中的集合


集合框架

在这里插入图片描述

泛型

泛型是把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊的类型。
在这里插入图片描述
确定类型后,集合里就不能加入别的类型的变量了。
类型擦除: java代码在编译成字节码时是不包含泛型中的类型信息的,这就叫做类型擦除。

List<String> list1=new ArrayList<String>();
List<Integer> list2=new ArrayList<Integer>();
System.out.println(list1.getClass()==list2.getClass());

结果:

true

List集合

源码:在这里插入图片描述
可以看出List是一个接口,继承于Collection
在这里插入图片描述
一些方法

List的实现类

  • ArrayList类

在这里插入图片描述
定义数组来存储数据 在这里插入图片描述
默认初始集合容量为10
在这里插入图片描述字符串最大分配大小
如果超出范围会报OutOfMemeoryError
在这里插入图片描述
扩容,大小变成之前的1.5倍

//  ArrayList
List<String> list=new ArrayList<String>();
// 加入集合
list.add("a");
list.add("b");
list.add("c");
list.add("d");
System.out.println(list);   //[a, b, c, d]
// 删除数据
list.remove(1);   //根据索引去删 删除了"b"
System.out.println(list);  
list.remove("d"); //删除括号里的内容 如果这个元素没在集合里 集合不变
list.remove("f");
System.out.println(list); //[a, c]
// 查找数据
System.out.println(list.get(0));  //根据索引查找数据
// 更改数据
list.set(0, "hh");
System.out.println(list);   //[hh, c]
//  其他操作
System.out.println(list.size());  //获得集合的大小 
System.out.println(list.isEmpty());  //判断集合是否为空
System.out.println(list.contains("c"));   //判断集合是否包含某个元素
list.clear(); //清空集合
  • Vector类

在这里插入图片描述
在这里插入图片描述
内部是由数组实现的
在这里插入图片描述
一些方法

  • Stack类

在这里插入图片描述
继承于Vector类
在这里插入图片描述

  • LinkedList类

在这里插入图片描述
在这里插入图片描述
双向链表实现数据的存储

List<String> list=new LinkedList<String>();
// 加入数据
list.add("a");
list.add("b");
list.add("c");
list.add("d");
System.out.println(list);  //[a, b, c, d]
//  删除数据
list.remove(0);   //根据索引位置删除
list.remove("c");  //删除传入的值
list.remove("gg"); //删除一个不存在的值不会报错
System.out.println(list);  //[b, d]
// 得到数据
System.out.println(list.get(0));  //b 根据索引找
// 改数据
list.set(0, "gdhs");  //根据索引位置改数据
System.out.println(list);   //[gdhs, d]
// 其他操作
 //  使用contains()方法的前提是equals()方法实现过了
System.out.println(list.contains("d"));  //true
System.out.println(list.isEmpty());   //false  是否为空
System.out.println(list.size());    //2 list的长度	
list.clear();                       //清空集合		
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值