List接口和Set接口及实现类

List接口

//是接口

List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。

List接口特点://有序 可重复 有索引

  1. 它是一个元素存取有序的集合。(例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的顺序完成的)。
  2. 它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。
  3. 集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。
常用方法
  • public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。
  • public E get(int index):返回集合中指定位置的元素。
  • public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。
  • public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值是更新前的元素。

List的子类//

ArrayList集合 集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据

ArrayList<Object> objects = new ArrayList<>();

LinkedList集合集合数据存储的结构是链表结构。方便元素添加、删除的集合,但是查找慢。

LinkedList<String> strings = new LinkedList<>();

Set接口

java.util.Set接口和java.util.List接口一样,同样继承自Collection接口。Set接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。

HashSet存储自定义类型元素

给HashSet中存放自定义类型元素时,需要重写对象中的hashCode和equals方法,建立自己的比较方式,才能保证HashSet集合中的对象唯一
java.util.HashSetSet接口的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的(即存取顺序不一致)

特点:具有良好的存取和查找性能
缺点:增删慢

 public class HashSetDemo {
     
    public static void main(String[] args) {
     
        //创建 Set集合
         HashSet<String>  set = new HashSet<String>();
        //添加元素
            set.add(new String("cba"));
            set.add("abc");
            set.add("bac"); 
            set.add("cba");  
            //遍历
            for (String name : set) {
     
                System.out.println(name);
            }
        }
     }

输出结果如下,说明集合中不能存储重复元素并且是无序的:

cba
abc
bac

LinkedHashSet

它是链表和哈希表组合的一个数据存储结构。可以保证元素有序。

你可能感兴趣的:(List接口,Array,List集合,Set接口,java)