- boolean add(E e):在list末尾添加元素
- boolean addAll(Collection> c):在指定集合末尾添加另一个同类型集合,若指定集合元素改变返回true
- boolean remove(Object o):从集合中移除指定元素,若元素有多个,则只删除第一个
- void clear():清空集合中的元素
- boolean contains(Object o):判断集合中是否包含指定元素
- boolean containsAll(Collection> c):判断指定集合是否包含集合c中的所有元素
- boolean isEmpty():判断集合是否为空
- int size():返回集合的长度,即集合中元素的个数
- T[] toArray(T[] a):将集合转换为T类型的数组
Collection list1 = new ArrayList<>();
list1.add("我");
list1.add("最");
list1.add("爱");
list1.add("吃");
System.out.println(list1); //输出:[我, 最, 爱, 吃]
Collection list2 = new ArrayList<>();
list2.add("涮羊肉");
list1.addAll(list2);
System.out.println(list1); //输出:[我, 最, 爱, 吃, 涮羊肉]
System.out.println(list1.isEmpty()); //输出:false
System.out.println(list1.size()); //输出:5
list1.remove(1);
System.out.println(list1); //输出:[我, 爱, 吃, 涮羊肉]
System.out.println(list1.contains("涮羊肉")); //输出:true
// 创建一个新的 String 类型的数组,数组长度和 list1 长度一样
String[] arr = new String[list1.size()];
list1.toArray(arr);// 将ArrayList对象转换成数组
for(String a:arr){
System.out.println(a);
}
list1.clear();
System.out.println(list1); //输出:[]
迭代器遍历集合
Collection list1 = new ArrayList<>();
list1.add("我");
list1.add("爱");
list1.add("吃");
list1.add("刷羊肉");
System.out.println(list1); //输出:[我, 爱, 吃, 涮羊肉]
Iterator it = list1.iterator();//通过集合对象获取迭代器对象
while(it.hasNext()){ //通过迭代器对象的hasnext()方法判断是否还有元素
String str = it.next();
System.out.println(str); //用迭代器遍历输出
}
1.1、List集合
list是有顺序的所以它的值是可以重复的
List 特有的方法
- void add(int index,E e):在index位置添加元素,如果index没有则在末尾添加
- boolean addAll(int index,Collection> c):在index位置添加另一个同类型集合,如果index没有则在末尾添加
- E remove(int index):删除指定索引处的元素,返回被删除的元素
- E set(int index, E e):修改指定索引处的元素,返回被修改的元素
- E get(int index):获取指定索引处的元素
List list1 = new ArrayList<>();
list1.add("我");
list1.add("最");
list1.add("爱");
list1.add("吃");
list1.add("刷羊肉");
System.out.println(list1); //输出:[我, 最, 爱, 吃, 涮羊肉]
String s = list1.set(1, "不");
System.out.println(list1);
System.out.println(s); //输出“最”
String s1 = list1.remove(1);
System.out.println(s1); //输出“不”
String s2 = list1.get(list1.size() - 1);
System.out.println(s2); //输出“涮羊肉”
List的实现类:
(1)ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高,可以存储重复元素
(2)LinkedList 底层数据结构是链表,查询慢,增删快,线程不安全,效率高,可以存储重复元素
(3)Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低,可以存储重复元素
LinkedList集合特有方法
- public void addFirst(E e):在列表开头插入指定元素
- public void addLast(E e):在列表结尾添加指定元素
- public E getFirst():返回列表第一个元素
- public E getLast():返回列表最后一个元素
- public E removeFirst():删除列表中第一个元素
- public E removeLast():删除列表中最后一个元素
Set是无序且不包含重复元素
Set集合中没有特有的方法,只继承使用Collection集合中的方法。
Set的实现类:
(1)HashSet底层数据结构采用哈希表实现,元素无序且唯一,线程不安全,效率高,可以存储null元素,元素的唯一性是靠所存储元素类型是否重写hashCode()和equals()方法来保证的,如果没有重写这两个方法,则无法保证元素的唯一性;
(2)LinkedHashSet底层数据结构采用链表和哈希表共同实现,链表保证了元素的顺序与存储顺序一致,哈希表保证了元素的唯一性。线程不安全,效率高;
(3)TreeSet底层数据结构采用二叉树来实现,元素唯一且已经排好序;唯一性同样需要重写hashCode和equals()方法,二叉树结构保证了元素的有序性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)