java集合 - List集合
1、List集合框架
2、集合的定义
集合就是一个保存数据的容器。在计算机中引入集合,是为了便于处理一组类似的数据。Java标准库自带的java.util包提供了集合相关的接口和实现类:Collection接口,它是除了Map接口外所有其他集合类的根接口。
3、List集合的特点
List集合的特点:有序、允许重复。List的行为和数组几乎完全相同:List 内部按照放入元素的先后顺存放,每个元素都可以通过索引确定自己的位置,List的索引和数组一样,从0开始。List的实现类:ArrayList、LinkedList、Vector。 ArrayList的内部数据结构是Object[]数组:初始化为一个空数组{ },第一次添加元素时,该数组扩容为10,数组容量不足时,该数组的容量扩容为原容量的1.5倍。扩容方法:grow()。
4、ArrayList的主要方法
方法1:add(E e) 作用:添加新元素至集合的尾部方法2:add(int index,E e) 作用:添加新元素至集合的指定位置方法3:addAll(Collection c) 作用:添加另一个集合中所有的元素至当前集合的尾部方法4:addAll(int index,Collection c) 作用:添加另一个集合中所有的元素至当前集合指定位置
package com.ret.demo2;
import java.util.ArrayList;
public class Demo_02 {
public static void main(String[] args) {
// 创建集合对象
ArrayList
// 操作1:添加新元素
// add(E e)方法:添加新元素至集合尾部
list.add("小乔");
list.add("曹操");
list.add("刘备");
list.add("后羿");
System.out.println(list);
// add(int index,E e)方法:添加新元素至集合的指定位置
list.add(1, "李白");
System.out.println(list);
// addAll(Collection c)方法
// addAll(int index, Collection c)方法
// 添加另外一个集合中所有的元素至当前集合
ArrayList
subList.add("猪八戒");
subList.add("猪八戒");
subList.add("白骨精");
// 将subList中所有元素添加至list集合的尾部
// list.addAll(subList);
list.addAll(0, subList);
System.out.println(list);
}
}
方法5:get(int index) 作用:获取元素(按照下标位置,获取元素)方法6:remove(int index) 作用:按照下标删除元素 remove(Object value) 作用:按照值删除方法7:indexOf(Object o) 作用:查找元素方法8:set(int index,E e) 作用:按照下标,修改对应元素。
package com.ret.demo2;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
public class Demo_03 {
public static void main(String[] args) {
// 创建临时的List集合
List
// 全部添加至ArrayList集合中
ArrayList
list.addAll(boyList);
// 操作2:获取元素(按照下标位置,获取元素)
// get(int index)
String first = list.get(0);
String last = list.get(list.size() - 1);
System.out.println("首元素:" + first);
System.out.println("尾元素:" + last);
System.out.println(list);
// 操作3:删除元素(按照下标或值,进行删除)
// remove(int index); 按照下标删除
// remove(Object value) 按照值删除
System.out.println("删除前:" + list);
// list.remove(1); //按照下标删除
list.remove("范亚丽"); // 按照值删除
System.out.println("删除后:" + list);
// 操作4:查找元素
// indexOf(Object o)
int index1 = list.indexOf("张文英");
System.out.println("查找一个不存在的元素时:" + index1);
int index2 = list.indexOf("杨文琦");
System.out.println("查找一个已经存在的元素时:" + index2);
// 操作5:修改元素
// set(int index,E e) : 按照下标位置修改
System.out.println("修改前:"+list);
list.set(1,"尊");
System.out.println("修改后:"+list);
}
}
方法9:list.clear() 作用:清空集合内的所有元素方法10:isContains(E e) 作用:查看元素是否存在方法11:subList(int index,int index) 作用:截取子集合方法12:toArray() 作用:将集合转换成数组方法13:toArray(T[ ] a) 作用:将集合转换成数组
package com.ret.demo2;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Demo_04 {
public static void main(String[] args) {
List
// 全部添加至ArrayList集合中
ArrayList
list.addAll(boyList);
System.out.println(list);
// 清空
// list.clear();
// 查看元素是否存在
// boolean isContains = list.contains("yq");
// System.out.println(isCotains);
// 截取子集合
List
System.out.println(subs);
// 转换成数组
Object[] array1 = list.toArray(); // Object数组
String[] array2 = list.toArray(new String[list.size()]);// String[]数组
System.out.println(Arrays.toString(array1));
System.out.println(Arrays.toString(array2));
}
}
5、通过创建ArrayList集合
1、通过无参构造方法创建ArrayList集合
// 通过【无参构造方法】创建ArrayList集合
// 数组默认被初始化成一个空数组
ArrayList
// 添加到11个元素时,容量不足,再次将数组扩容,按照原容量的1.5倍
2、通过有参构造方法创建ArrayList集合
// 通过【有参构造方法】创建ArrayList集合
// 根据预估数据元素的规模数量,初始化elementData数组
// 减少扩容的次数频率
ArrayList
6、数组的遍历
遍历方法1:冒泡排序
public static void main(String[] args) {
ArrayList
list.addAll(Arrays.asList("E","D","K","M","N","A"));
//方式1:冒泡排序
for(int i = 0;i for(int k = 0;k if(list.get(k).compareTo(list.get(k+1))>0) { String temp = list.get(k); list.set(k, list.get(k+1)); list.set(k+1, temp); } } } } 遍历方法2:使用sort()方法 public static void main(String[] args) { ArrayList list.addAll(Arrays.asList("E","D","K","M","N","A")); //方式2:使用sort()方法 list = new ArrayList list.addAll(Arrays.asList("E","D","K","M","N","A")); list.sort(new Comparator @Override public int compare(String o1, String o2) { return o1.compareTo(o2); } }); System.out.println(list); }