Java集合

java第一周学习

集合篇

Java集合的基本使用

ArrayList

java中建立一个array之后,会给内存分配一块连续的空间给这个array。所以array的长度是确定的。但实际情况中,将数据储存到array中的时候很可能会超出array的预定长度。为了解决这个问题,所以设计了arraylist.

其中的该类的主要方法有:

添加元素
import java.util.ArrayList;

public class ArrayListProj {
    public static void main(String[] args) {
        ArrayList<String> fruitShop = new ArrayList<String>();
        fruitShop.add("apple");
        fruitShop.add("banana");
        fruitShop.add("orange");
        fruitShop.add("peach");
        System.out.println(fruitShop);
    }
}

输出为

[apple, banana, orange, peach]
查找元素
System.out.println(fruitShop.get(2));
修改元素
fruitShop.set(2, "lychee");//第一位为索引,从0开始
删除元素
fruitShop.remove(2);
计算大小

要知道ArrayList中的元素数量,可以用size()

System.out.println(fruitShop.size);
遍历元素
import java.util.ArrayList;

public class ArrayListProj {
    public static void main(String[] args) {
        ArrayList<String> fruitShop = new ArrayList<String>();
        fruitShop.add("apple");
        fruitShop.add("banana");
        fruitShop.add("orange");
        fruitShop.add("peach");
        //foreach
        for(String i : fruitShop){
        System.out.println(i)
        };
    }
}

LinkedList

LinkedList和ArrayList相似,也是一种用来储存数据的容器。不同点在于LinkedList是基于链表这种数据结构的。这种数据结构不是按照线性顺序进行存放数据的,而是通过在上一个数据中存储下一个数据的地址来存放数据的,建立时不需一个连续的内存空间,不会浪费内存。

import java.util.LinkedList;
//创建方法
LinkedList<E> list = new LinkedList<E>();
//使用集合创建
LinkedList<E> list = new LinkedList(Collection<? extends E> c);

由于链表的特点,所以其在首位和中间位置添加元素时会比arraylist更快

import java.util.LinkedList;

public class LinkedListProj {
    public static void main(String[] args) {
        LinkedList<String> fruitShop = new LinkedList<String>();
        //添加元素
        fruitShop.add("apple");
        fruitShop.add("banana");
        //在首位添加元素
        fruitShop.addFirst("orange");
        //在末尾添加元素
        fruitShop.addLast("peach");
        //在指定位子添加元素
        fruitShop.add(2,"lychee");
        System.out.println(fruitShop);
    }
}

但由于链表不是按照线性顺序存储的,如果要查找某一个数据,只能使用遍历,所以查找效率低。

总结
  • 要经常查找数据用ArrayList。
  • 要经常添加删除数据用LinkedList。
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页