集合之List,Set。
List接口介绍及特点
-
list接口继承与Collection接口,list集合中允许有重复的元素,所有的元素都是以一种线性的方式进行存储的
-
list通过索引来访问集合中的元素
-
list集合中的元素是存储有序的
List接口中常用方法
-
List接口继承自Collection接口,所以list中有Collection接口中所有的方法
-
list中特有的方法
-
public void add(int index,E element)
:将指定元素element添加到指定位置 -
public E get(int index)
:获取指定索引位置上的元素 -
public E remove(int index)
:移除列表中指定元素,返回的是被移除的元素 -
public E set(int index,E element)
:用指定元素替换集合中指定位置的元素,返回值是更新前的元素
1 public static void main(String[] args) { 2 List list = new ArrayList(); 3 list.add("熊大"); 4 list.add("熊二"); 5 list.add("熊小小"); 6 //将 熊老三添加到第三个元素 7 list.add(2,"熊老三"); 8 System.out.println(list);//熊老三 9 //获取索引为3的元素 10 Object o = list.get(3); 11 System.out.println(o);//熊小小 12 //移除熊老三 13 Object remove = list.remove(2); 14 System.out.println(remove);//熊老三 15 //用光头强替换熊二 16 Object o1 = list.set(1, "光头强"); 17 System.out.println(o1);//熊二 18 } 19 }
-
List子类
-
ArrayList
-
ArrayList集合数据存储的结构是数组结构。元素增删慢,查询快。
-
-
LinkedList
-
LinkedList
是存储结构是链表结构,元素增删快,查询相对来说慢一点。-
public void addFirst(E e)
:将指定元素插入此列表的开头。 -
public void addLast(E e)
:将指定元素添加到此列表的结尾。 -
public E getFirst()
:返回此列表的第一个元素。 -
public E getLast()
:返回此列表的最后一个元素。 -
public E removeFirst()
:移除并返回此列表的第一个元素。 -
public E removeLast()
:移除并返回此列表的最后一个元素。 -
public E pop()
:从此列表所表示的堆栈处弹出一个元素。 -
public void push(E e)
:将元素推入此列表所表示的堆栈。 -
public boolean isEmpty()
:如果列表不包含元素,则返回true
-
public static void main(String[] args) { LinkedList<String> list = new LinkedList(); //添加元素 list.addFirst("光头强"); list.addFirst("吉吉国王"); list.addFirst("小猴子"); System.out.println(list);//小猴子, 吉吉国王, 光头强 //获取第一个元素 String first = list.getFirst(); System.out.println(first);//小猴子 //获取最后一个元素 String last = list.getLast(); System.out.println(last);//光头强 //删除第一个元素 String removeFirst = list.removeFirst(); System.out.println(removeFirst);//小猴子 //删除最后一个元素 String removeLast = list.removeLast(); System.out.println(removeLast);//光头强 //判断集合是否为空 while (!list.isEmpty()){//判断集合是否为空 System.out.println(list.pop());//弹出集合中栈顶的元素---吉吉国王 } System.out.println(list);//[] }
-
Set接口及其介绍
-
set接口继承于Collection接口,包含所有Collection接口的方法
-
set集合中存储的元素无序
-
set集合中的元素是不可重复的
set子类
-
HashSet
集合-
hashSet是set接口的一个子类,所存储的元素是不可以重复的,并且是无序的。
-
hashSet是根据对象的hash值来确定元素存储的位置,因此具有良好的存取和查找性能,保证元素唯一的方式是依赖于:hashcode()和equals( )方法
1 public static void main(String[] args) { 2 HashSet<String> set = new HashSet<>(); 3 set.add(new String("NBA")); 4 set.add("MLB"); 5 set.add("NBL"); 6 set.add("CBA"); 7 set.add("NBA"); 8 for (String s : set) { 9 System.out.println(s); 10 } 11 }
输出结果,只有一个NBA:
MLB CBA NBL NBA
-
-
HashSet集合存储数据的结构(哈希表)
hashSet存储原理
-
LinkedHashSet
-
hashSet
可以保证元素不重复,但是元素的存取是无序的,为了解决这个无序问题,我们可以才去LinkedHashSet
来解决这个问题。 -
LinkedHashSet
是链表和哈希表组合的一个数据存储结构
1 public static void main(String[] args) { 2 Set<String> set = new LinkedHashSet<>(); 3 set.add("MLB"); 4 set.add("NBL"); 5 set.add("CBA"); 6 set.add("NBA"); 7 for (String s : set) { 8 System.out.println(s); 9 } 10 } 11 12 输出结果: 13 MLB 14 NBL 15 CBA 16 NBA
-
关与list,set的知识就先写这么多了,具体实际应用还是希望大家灵活运用~~