当前位置:   article > 正文

集合之Set和ArrayList_arraylist set

arraylist set

1.集合概述

1)Java中的集合就像一个容器,专门用来存储Java对象(实际上是对象的引用,但习惯上都称为对象),这些对象可以是任意的数据类型,并且长度可变。这些类都位于java.uitl包中。
2)Java集合按照存储结构可以分为两大类,即单列集合Collection和双列集合Map,这两种集合的特点具体如下。
3)Collection:两个重要的子接口,List和Set.其中,list集合的特点是元素有序,可重复;Set集合的特点是元素无序并且不重复。List的主要实现类有ArrayList和LinkedList;Set接口的主要实现类有HashSet和TreeSet.
4)Map:双列集合的根接口,用于存储具有键(Key),值(Value)映射关系的元素。Key是唯一的

2. Collection接口

1)通用方法:
boolean add(Object o) : 向集合中添加一个元素
boolean addAll(Collection c) : 将指定集合c中的所有元素添加到该集合中
void clear () : 删除该集合中的所有元素
Boolean remove(Object o) : 删除该集合中指定的元素
boolean isEmpty() : 判断该集合是否为空
boolean contains(Object o) : 判断该集合是否包含某个元素
boolean containsAll(Collection c) :判断该集合中是否包含指定集合c中的所有元素
2)List接口
在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。
List集合常用方法:
void add(int index,Object element):将元素element插入在List集合的指定索引位置
boolean addAll(int index,Collection c):将集合c包含的所有元素插入到List集合的指定索引位置
Object get(int index):返回集合索引index处的元素
Object remove(int index):返回index索引处的元素
Object set(int index,Object element):将索引index处的元素替换成element元素,并将替换后的元素返回
3)ArrayList集合
ArrayList是List接口的一个实现类,它是程序中最常见的一种集合,在其内部封装了一个长度可变的数组对象。当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。
ArrayList在元素的增删方面效率比较低,但是在遍历和查找时比较高效。
代码示例:

     import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList list=new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println("集合的长度是:"+list.size());
        System.out.println("第2个元素是:"+list.get(1));
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
集合的长度是:32个元素是:B
  • 1
  • 2

4)LinkedList集合
使用Node类型的first和last属性维护一个双向循环链表。,链表中的每一个元素都使用引用的方式来记住他的前一个元素和后一个元素,从而可以将所有的元素彼此连接起来。当插入一个新元素时,只需要修改元素之间的这种引用关系即可,删除一个节点也是如此。正因为这样的存储结构,所以LinkedList集合对于元素的增删操作表现出很高的效率。
LinkedList中的特有方法:
void add(int index,E element):在此列表中指定的位置插入指定的元素
void addFirst(Obbject o):将指定元素插入集合的开头
void addLast(Object o):将指定元素添加到集合的结尾
Object getFirst(): 返回集合的第一个元素
Object removeFirst() :移除并返回集合的第一个元素
boolean offer(Object o):将指定元素添加到集合的结尾
Object peak():获取集合的第一个元素
Object poll():移除并返回集合的第一个元素
void push(Object o):将指定元素添加到集合的开头
Object pop():一处并返回集合的第一个元素
代码示例:

 import java.util.LinkedList;

public class Main1 {
    public static void main(String[] args) {
        //创建LinkedList集合
        LinkedList link=new LinkedList<>();
        link.add("A");
        link.add("B");
        link.add("C");
        System.out.println(link);
        //添加元素
        link.offer("offer");
        link.push("push");
        System.out.println(link);
        //获取元素
        Object object=link.peek();
        System.out.println(object);
        //删除元素
        link.removeFirst();
        link.pollLast();
        System.out.println(link);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
[A, B, C]
[push, A, B, C, offer]
push
[A, B, C]
  • 1
  • 2
  • 3
  • 4

5)set接口
set中的元素无序,并且都会以某种规则保证存入的元素不出现重复
Set接口主要有两个实现类,分别是HashSet和TreeSet,其中,HashSet是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。TreeSet则是以二叉树的方式存储元素,它可以实现对集合中的元素进行排序。
a)HashSet集合
HashSet是Set的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的。
代码示例:

import java.util.HashSet;

public class Main2 {
    public static void main(String[] args) {
        HashSet set=new HashSet<>();
        set.add("A");
        set.add("B");
        set.add("C");
        set.add("C");
        set.add("D");
        set.forEach(o-> System.out.println(o));
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
A
B
C
D
  • 1
  • 2
  • 3
  • 4

b)treeSet集合

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/715675
推荐阅读
相关标签
  

闽ICP备14008679号