软件开发工资一般多少钱一个月,做关键词优化的公司,厦门专业网站建设建站,做网站 哪些公司集合就是一个保存数据的容器。在计算机中引入集合#xff0c;是为了便于处理一组类似的数据。Java标准库自带的java.util包提供了集合相关的接口和实现类#xff1a;Collection接口#xff0c;它是除了Map接口外所有其他集合类的根接口。
Java的Java.uitl包主要提供以下三种…集合就是一个保存数据的容器。在计算机中引入集合是为了便于处理一组类似的数据。Java标准库自带的java.util包提供了集合相关的接口和实现类Collection接口它是除了Map接口外所有其他集合类的根接口。
Java的Java.uitl包主要提供以下三种类型的集合 List:一种有序表的集合Set:一种保证没有重复元素的集合Map:一种通过键值对查找的映射表集合。 Java集合的设计有几个特点首先实现了接口和实现类相分离比如有序表的接口是List,具体的实现类有ArrayList、LinkedLis、Vectort;其次支持泛型我们可以限制在一个集合中只能放入同一种数据类型的元素。
一、List集合
List集合的特点有序、允许重复。
List的行为和数组几乎完全相同List 内部按照放入元素的先后顺存放,每个元素都可以通过索引确定自己的位置List的索引和数组一样,从0开始。
List的实现类ArrayList、LinkedList、Vector。
1.ArrayList的内部数据结构是Object[]数组
特点 1.初始化为一个空数组{ }
内部源码为 public ArrayList() {this.elementData DEFAULTCAPACITY_EMPTY_ELEMENTDATA;} 2.第一次添加元素时该数组扩容为10 3.数组容量不足时该数组的容量扩容为原容量的1.5倍。扩容方法grow()
int newCapacity oldCapacity (oldCapacity 1);
2.主要方法。
方法1add(E e) 作用添加新元素至集合的尾部
方法2add(int index,E e) 作用添加新元素至集合的指定位置
方法3addAll(Collection c) 作用添加另一个集合中所有的元素至当前集合的尾部
方法4addAll(int index,Collection c) 作用添加另一个集合中所有的元素至当前集合指定位置
public static void main(String[] args) {//创建集合对象ArrayListString list new ArrayListString();//操作1添加新元素//add(E e)方法添加新元素至集合的尾部list.add(小乔);list.add(曹操);list.add(刘备);list.add(后裔);System.out.println(list);//add(int index,E e)方法添加新元素至集合的指定位置list.add(0, 李白);System.out.println(list);//addAll(Collection c)方法//addAll(int index,Collection c)方法//添加另一个集合中所有的元素至当前集合ArrayListString subList new ArrayListString();subList.add(孙悟空);subList.add(猪八戒);subList.add(白骨精);//将subList中的所有元素添加至list集合的尾部
// list.addAll(subList);list.addAll(1,subList);System.out.println(list);} 输出
[小乔, 曹操, 刘备, 后裔]
[李白, 小乔, 曹操, 刘备, 后裔]
[李白, 孙悟空, 猪八戒, 白骨精, 小乔, 曹操, 刘备, 后裔]
方法5get(int index) 作用获取元素按照下标位置获取元素
方法6remove(int index) 作用按照下标删除元素 remove(Object value) 作用按照值删除
方法7indexOf(Object o) 作用查找元素
方法8set(int index,E e) 作用按照下标修改对应元素。
//创建临时的List集合
ListString boyList Arrays.asList(YK,QTZ,CBY,ZRZ,YWQ);
//全部添加至ArrayList集合中
ArrayListString list new ArrayListString();
list.addAll(boyList);
System.out.println(list);//操作2获取元素(按照下标位置获取元素)
//get(int index)String first list.get(0);
String last list.get(list.size()-1);
System.out.println(首元素first);
System.out.println(为元素:last);//操作3删除元素(按照下标或值进行删除)
//remove(int index)按照下标删除
//remove(Object value) 按照值删除
System.out.println(删除前list);//list.remove(1); //按照下标删除
list.remove(YWQ); //按照值删除System.out.println(删除后list);//操作4查找元素
//indexOf(Object o)
int index1 list.indexOf(ZWY);
System.out.println(查找一个不存在的元素index1);int index2 list.indexOf(YK);
System.out.println(查找一个已存在的元素:index2);
//操作5修改元素
//set(int index,E e);System.out.println(修改前list);
list.set(1, QQQ);
System.out.println(修改后list);
输出
[YK, QTZ, CBY, ZRZ, YWQ]
首元素YK
为元素:YWQ
删除前[YK, QTZ, CBY, ZRZ, YWQ]
删除后[YK, QTZ, CBY, ZRZ]
查找一个不存在的元素-1
查找一个已存在的元素:0
修改前[YK, QTZ, CBY, ZRZ]
修改后[YK, QQQ, CBY, ZRZ]
方法9list.clear() 作用清空集合内的所有元素
方法10isContains(E e) 作用查看元素是否存在
方法11subList(int index,int index) 作用截取子集合
方法12toArray() 作用将集合转换成数组
方法13toArray(T[ ] a) 作用将集合转换成数组
public static void main(String[] args) {ListString boyList Arrays.asList(YK,QTZ,CBY,ZRZ,YWQ);//全部添加至ArrayList集合中ArrayListString list new ArrayListString();list.addAll(boyList);System.out.println(list);//查看元素是否存在boolean isContains list.contains(yangQi);System.out.println(isContains);//截取子集合ListString subs list.subList(0, 3);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));
// //清空list.clear();System.out.println(list);}
输出
[YK, QTZ, CBY, ZRZ, YWQ]
false
[YK, QTZ, CBY]
[YK, QTZ, CBY, ZRZ, YWQ]
[YK, QTZ, CBY, ZRZ, YWQ]
[]
3.数组的遍历
遍历方法1冒泡排序
public static void main(String[] args) {ArrayListString list new ArrayListString();list.addAll(Arrays.asList(E,D,K,M,N,A));//方式1:冒泡排序for(int i 0;ilist.size()-1;i) {for(int k 0;klist.size()-1-i;k) {if(list.get(k).compareTo(list.get(k1))0) {String temp list.get(k);list.set(k, list.get(k1));list.set(k1, temp);}}}}
输出
[A, D, E, K, M, N]
遍历方法2使用sort()方法
public static void main(String[] args) {ArrayListString list new ArrayListString();list.addAll(Arrays.asList(E,D,K,M,N,A));//方式2使用sort()方法list new ArrayListString();list.addAll(Arrays.asList(E,D,K,M,N,A));list.sort(new ComparatorString() {Overridepublic int compare(String o1, String o2) {return o1.compareTo(o2);}});System.out.println(list);}
输出
[A, D, E, K, M, N]
4.通过创建ArrayList集合 1.通过[无参构造方法]创建ArrayList集合 //通过[无参构造方法]创建ArrayList集合//数组默认被初始化成一个空数组ArrayListInteger list1 new ArrayListInteger();list1.add(5178);//添加第1个元素时,将数组扩容为10list1.add(1852);//添加第2个元素list1.add(1555);//添加。。。个元素list1.add(9527);//添加第10个元素//添加第11个元素时容量不足再次将数组扩容按照原容量的1.5倍list1.add(1024); 2.通过[有参构造方法]创建Arraylist集合 ArrayListInteger list2 new ArrayListInteger(200);//创建集合时传入另外一-个Collection集合 并H.按照该集合的元素进行初始化ArrayListInteger list3 new ArrayListInteger(Arrays.asList(1,2,3));
下一篇LinkedList