JAVA高级学习记录

JAVA高级

Collection

List

ArrayList
  • 简介:ArrayList是一个类似于链表的类,可以合适的代替数组的种种操作,例如在不知道所需数组的大小,又不能用动态内存分配的时候,就可以使用ArrayList,而且该类中的:添加,删除,替换,清空等方法都非常便捷,非常适合初学者的使用。

  • 方法:
    - add(E e)添加一个元素e;
    - add(int a, E e)在列表a的位置添加一个元素e;
    - remove(int a)删除a位置的元素;
    - remove(E e)在e第一次出现的位置把它删除;
    - contains(Object o) 如果此列表中包含指定的元素,则返回 true;

    • get(int index) 返回此列表中指定位置上的元素;

    • indexOf(Object o)返回此列表中第一次出现的元素o;

    • lastIndexOf(Object o)返回此列表中最后一次出现的元素o;

    • set(a, b)用元素b来替换位置a上的元素;

    • toArray()将列表中的每一个位置上的元素都放在一个数组中对应位置,形成一个新的数组;

    • clear()清空列表中的元素;

    • isEmpty()如果列表为空,就返回true;

    • removeRange(a,b)删除列表索引a到b位置之间的所有元素 tip:我试了在idea里不好使为什么

    • 代码实例:

不知道为什么这里不写东西就不是代码块

    import java.util.ArrayLisy;
    public class chapter01 {
    public static void main(String[] args) {
    ArrayList alt = new ArrayList();
    System.out.println("开始没有add的样子: "+alt);
    alt.add("北京");
    alt.add("西安");
    alt.add("洛阳");
    alt.add("南京");
    alt.add("许昌");
    alt.add("长沙");
    alt.add("洛阳");
    System.out.println("看看add之后的结果: "+alt);

    System.out.println("测试size: "+alt.size());

    System.out.println("测试contains: "+alt.contains("北京"));

    System.out.println("用get获取指定位置的值: "+alt.get(1));

    System.out.println("用indexOf返回指定元素的索引: "+alt.indexOf("洛阳"));

    System.out.println("用lastindexOf返回指定元素最后一次出现: "+alt.lastIndexOf("洛阳"));

    alt.remove(1);
    System.out.println("测试remove后的列表: "+alt);
    alt.remove("南京");
    System.out.println("测试remove指定元素后的列表: "+alt);

    //alt.removeRange(1,5);这个为什么不能用

    alt.set(3,"金陵城");
    System.out.println("用set替换后的列表: "+alt);

    Object[] obj = alt.toArray();
    for(Object obj1 : obj){
        System.out.println("用foreach输出toArray得到的数组: "+obj1);
    }

    alt.clear();
    System.out.println("这是alt.clear()后的列表: "+alt);

    System.out.println("看看alt.isEmpty的作用: "+alt.isEmpty());
}

}
`

  • 这是输出结果:

开始没有add的样子: []
看看add之后的结果: [北京, 西安, 洛阳, 南京, 许昌, 长沙, 洛阳]
测试size: 7
测试contains: true
用get获取指定位置的值: 西安
用indexOf返回指定元素的索引: 2
用lastindexOf返回指定元素最后一次出现: 6
测试remove后的列表: [北京, 洛阳, 南京, 许昌, 长沙, 洛阳]
测试remove指定元素后的列表: [北京, 洛阳, 许昌, 长沙, 洛阳]
用set替换后的列表: [北京, 洛阳, 许昌, 金陵城, 洛阳]
用foreach输出toArray得到的数组: 北京
用foreach输出toArray得到的数组: 洛阳
用foreach输出toArray得到的数组: 许昌
用foreach输出toArray得到的数组: 金陵城
用foreach输出toArray得到的数组: 洛阳
这是alt.clear()后的列表: []
看看alt.isEmpty的作用: true

进程已结束,退出代码0

LinkedList
  • 简介:LinkedList个人感觉和ArrayList的差别不是很大,而且和ArrayList类中的各个方法高度相似。(个人观点,学的浅)

  • 方法:

    • push(a)将a元素推入表中,注意:push()和add()方法并不相同,push()是将每一个元素都放在表头的位置,并将之前的表头往后挤。
      举个例子:
      push(a);
      push(b);
      push(c );
      这样得到的表,我们以为是a,b,c实际是c,b,a;

    • peek()获取但不移除第一个元素;

    • peekFirst()获取但不移除第一个元素,并且如果此表为空,返回null

    • peekLast()获取但不移除最后一个元素,如果…

    • pool()获取并移除第一个元素;

    • poolFirst()获取并移除第一个元素,如果…

    • poolLast()获取并移除最后一个…

    • pop():API中的描述是“从此列表所表示的堆栈处弹出一个元素。”但是我觉得功能和pool是一样的,他的返回值就是你弹出的那个元素,弹出就等于是返回这个元素的值,然后再移除它。

    • 剩下诸如:add(),remove(),size(),get()这些方法都和之前的ArrayList基本相同。

List总结:
  • ArrayList和LinkedList的区别:
    • ArrayList实现了List接口,用于表示长度可变的数组列表,是不同步的,适合在单线程环境下使用。
    • LinkedList底层采用双向链表实现,方便插入和删除元素,适用于频繁进行元素插入与删除。

一些新学的方法:

  • for each:增强型for循环
    • 使用方式:
      int[] arr = new int[10];
      for( int a : arr ) {//意思就是把数组arr中的每一个元素都放在a中,再输出
      System.out.println(a);
      }

    • 使用场景:用于不知道数组大小的情况(百度来的,这种时候在后面加.length不是更方便吗?)

  • 强制转化的时候,貌似只能进行几个特定的转化,不然会报错?留下这个问题,下次学习的时候解决,好像今天的案例里面强转Integer就出问题了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值