当前位置:   article > 正文

Java集合(List集合)

Java集合(List集合)

什么是集合?
什么是集合?集合就是“由若干个确定的元素所构成的整体”,在程序中,一般代表保存
若干个元素(数据)的某种容器类。

在Java中,如果一个Java对象可以在内部持有(保存)若干其他Java对象,并对
外提供访问接口,我们把这种Java对象的容器称为集合。很显然,Java的数组也可以看作
是一种集合:
 

既然]ava提供了数组这种数据类型,可以充当集合,那么,我们为什么还需要其他集合
类?这是因为数组有如下限制:
·数组初始化后大小不可变:
·数组只能按索引顺序存取;
因此,我们需要各种不同类型的集合类来处理不同的数据,例如:
·可变大小的顺序链表;
·保证无重复元素的集合:
 

 集合接口
Java标准库自带的java.util包提供了集合相关的接口和实现类:
Collectioni接口,它是除Map接口外所有其他集合类的根接口。
Java的java.util包主要提供了以下三种类型的集合:
List:一种有序列表的集合:
Set:一种保证没有重复元素的集合:
Map:一种通过键值(key-value)查找的映射表集合,例如,根据Student的name查找对应Student的Map。

 ArrayList

  1. package com.xn.ffur;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.List;
  5. public class Fur02 {
  6. public static void main(String[] args) {
  7. //创建临时的List集合
  8. List<String> foodlist=Arrays.asList("馅饼","胡辣汤","油条","包子","窝窝头","豆浆","馒头");
  9. //全部添加至ArrayList集合中
  10. ArrayList<String> list=new ArrayList<String>();
  11. list.addAll(foodlist);
  12. //操作1:添加新元素
  13. //add(E,e)方法:添加元素至集合的尾部
  14. list.add("三明治");
  15. System.out.println(list);
  16. //操作2:获取元素(按照下标位置,获取元素)
  17. //get(int index)
  18. String first=list.get(0);
  19. System.out.println("首元素"+first);
  20. String last=list.get(list.size()-1);
  21. System.out.println("尾元素"+last);
  22. //操作3:查找元素
  23. //indexOf(Object o)
  24. int index1=list.indexOf(first);
  25. System.out.println("查找一个存在的元素时:"+index1);
  26. int index2=list.indexOf(last);
  27. System.out.println("查找一个存在的元素时:"+index2);
  28. //操作4:删除元素(按照下标或值,进行删除)
  29. //remove(int index)按下标删除
  30. //remove(Object value)按值删除
  31. System.out.println(list);
  32. list.remove("豆浆");
  33. System.out.println("删除后:"+list);
  34. //操作5:修改元素
  35. //set(int index,E e):按照下标位置修改
  36. System.out.println("修改前:"+list);
  37. list.set(2, "汉堡");
  38. System.out.println("修改后"+list);
  39. //查看元素是否存在
  40. boolean isContains=list.contains("馅饼");
  41. System.out.println(isContains);
  42. //截取子集合
  43. List<String> sub=list.subList(1, 5);
  44. System.out.println(sub);
  45. //转化成数组
  46. Object[] arr1=list.toArray();
  47. String[] arr2=list.toArray(new String[list.size()]);
  48. System.out.println(Arrays.toString(arr1));
  49. System.out.println(Arrays.toString(arr2));
  50. //清空
  51. list.clear();
  52. System.out.println(list);
  53. }
  54. }
  1. package com.xn.ffur;
  2. import java.lang.reflect.Array;
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.Comparator;
  6. public class Fur03 {
  7. public static <T> void main(String[] args) {
  8. ArrayList<String> list = new ArrayList<String>();
  9. list.addAll(Arrays.asList("E", "A", "N", "C", "P", "Z"));
  10. // 方式1:冒泡排序
  11. for(int i=0,n=list.size();i<n-1;i++) {
  12. for(int k=0;k<n-i-1;k++) {
  13. while(list.get(k).compareTo(list.get(k+1))>0) {
  14. String temp=list.get(k);
  15. list.set(k, list.get(k+1));
  16. list.set(k+1, temp);
  17. }
  18. }
  19. }
  20. System.out.println(list);
  21. // 方式2:使用sort()方法
  22. list = new ArrayList<String>();
  23. list.addAll(Arrays.asList("C", "Y", "O", "R", "T", "D"));
  24. list.sort(new Comparator<String>() {
  25. @Override
  26. public int compare(String o1, String o2) {
  27. return o1.compareTo(o2);
  28. }
  29. });
  30. System.out.println(list);
  31. }
  32. }
  1. package com.xn.ffur;
  2. import java.lang.reflect.Array;
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. public class Fur04 {
  6. public static void main(String[] args) {
  7. //通过无参构造方法创造Array List集合
  8. //数组默认被初始化成一个空数组
  9. ArrayList<Integer> list1=new ArrayList<Integer>();
  10. list1.add(1);//添加第1个元素时,将数组扩容为10
  11. list1.add(2);
  12. //添加第11个元素时,容量不足,再次将数组扩容,按照原容量的1.5
  13. //通过【有参构造方法】创建ArrayList集合
  14. //根据预估数据元素的规模数量,初始化elementData数组
  15. //减少扩容的次数频率
  16. ArrayList<Integer> list2=new ArrayList<Integer>(100);
  17. //创建集合时,传入另外一个Collection集合,并且按照该集合的元素进行初始化
  18. ArrayList<Integer> list3=new ArrayList<Integer>(Arrays.asList(100,101,102));
  19. }
  20. }

LinkedList

  1. package com.xn.ffur;
  2. import java.util.LinkedList;
  3. public class Fur05 {
  4. public static void main(String[] args) {
  5. LinkedList<String> list=new LinkedList<String>();
  6. //添加新元素
  7. //add()/list.addLate():将新元素提娜佳至链表的尾部
  8. list.add("a");
  9. list.add("b");
  10. list.add("c");
  11. list.add("d");
  12. list.add("e");
  13. list.addFirst("f");
  14. //将新元素提娜佳至链表的尾部
  15. list.addLast("l");
  16. System.out.println(list);
  17. //获取元素
  18. //过呢据元素的下标位置,在链表中遍历,查找获取元素
  19. String item=list.get(1);
  20. System.out.println(item);
  21. //获取链表的头元素和尾元素
  22. String first=list.getFirst();
  23. String last=list.getLast();
  24. System.out.println(first);
  25. //删除元素
  26. list.remove(1);//根据下表删除
  27. list.remove("b");//根据值
  28. list.removeFirst();//删除链表的头元素
  29. list.removeLast();//删除链表的尾元素
  30. }
  31. }

Stack栈

  1. package com.xn.ffur;
  2. import java.util.Stack;
  3. import java.util.Vector;
  4. public class Fur06 {
  5. public static void main(String[] args) {
  6. //创建栈
  7. Stack<String> stack=new Stack<String>();
  8. //添加新元素(向栈顶添加)
  9. stack.push("s1");
  10. stack.push("s2");
  11. stack.push("s3");
  12. stack.push("s4");
  13. stack.push("s5");
  14. stack.push("s6");
  15. System.out.println(stack);
  16. //获取元素(从栈顶获取并删除元素)
  17. System.out.println(stack.pop());
  18. System.out.println(stack.pop());
  19. System.out.println(stack.pop());
  20. System.out.println(stack);
  21. //取出栈顶元素
  22. System.out.println(stack.peek());
  23. System.out.println(stack.peek());
  24. //遍历栈
  25. while(!stack.isEmpty()) {
  26. System.out.println(stack.pop());
  27. }
  28. }
  29. }
  1. package com.xn.ffur;
  2. import java.util.Stack;
  3. public class Fur07 {
  4. public static void main(String[] args) {
  5. //方式1;Stack栈
  6. String s="长江后浪推前浪";
  7. Stack<Character> stack=new Stack<Character>();
  8. for(int i=0;i<s.length();i++) {
  9. char c=s.charAt(i);
  10. stack.push(c);
  11. }
  12. StringBuilder ret=new StringBuilder();
  13. while(!stack.isEmpty()) {
  14. ret.append(stack.pop());
  15. }
  16. System.out.println(ret);
  17. //方式2:StringBuilder
  18. StringBuilder sb=new StringBuilder();
  19. sb.reverse();
  20. System.out.println(sb);
  21. }
  22. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/43102
推荐阅读
相关标签
  

闽ICP备14008679号