什么是类集?
类集实际上就是动态的对象数组,与一般的对象不同,类集的对象内容可以随意扩充。
Collection下面分为很多个接口,其中有个list接口,list接口可以存放任意的数据,而且list接口运行内容重复,list接口要比collection接口更强大,因为大量扩充了collection接口的操作。
List接口:可以存放重复的内容
set接口:不能存放重复的内容,所有的重复内容是靠hashcode和equals两个方法区分的
Queue:队列接口
SortedSet接口:可以对集合中的数据进行排序
List接口常用子类—ArrayList,可以通过对象的多态性为List接口实例化。
举例:向ArrayList集合之后添加数据
1 package com.feimao.code; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.List; 6 7 public class ArrayListDemo01 { 8 public static void main(String args[]){ 9 List<String> l = new ArrayList<String>(); 10 Collection<String> c = new ArrayList<String>(); 11 l.add("feimao"); 12 l.add(0 , "yuzhubaobao"); 13 System.out.println(l); 14 c.add("hello"); 15 c.add("world"); 16 l.addAll(c); 17 System.out.println(l); 18 } 19 } 20 21
举例:删除集合中的元素
1 package com.feimao.code; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.List; 6 7 public class ArrayListDemo01 { 8 public static void main(String args[]) { 9 List<String> l = new ArrayList<String>(); 10 Collection<String> c = new ArrayList<String>(); 11 l.add("feimao"); 12 l.add(0, "yuzhubaobao"); 13 l.add("taotao"); 14 System.out.println(l); 15 l.remove("yuzhubaobao"); 16 l.remove(1); 17 System.out.println(l); 18 } 19 }
举例:删除数据
1 package com.feimao.code; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.List; 6 7 public class ArrayListDemo01 { 8 public static void main(String args[]) { 9 List<String> l = new ArrayList<String>(); 10 Collection<String> c = new ArrayList<String>(); 11 l.add("feimao"); 12 l.add(0, "yuzhubaobao"); 13 l.add("taotao"); 14 l.add("we"); 15 l.add("are a family"); 16 System.out.println("从前向后输出:" ); 17 for(int i = 0 ; i < l.size() ; i++){ 18 System.out.print(l.get(i) + "、"); 19 } 20 21 System.out.println("从后向前输出:" ); 22 for(int j = l.size()-1 ; j >= 0 ; j--){ 23 System.out.println(l.get(j) + "、"); 24 } 25 } 26 }
面试:Arraylist和linklist的区别,哪个读取数据更快?
ArrayList和LinkedList的大致区别如下:
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
ArrayList更适合读取数据,linkedList更多的时候适合添加或删除数据。