当前位置:   article > 正文

Java-集合(List接口及其常用的实现子类)_list按顺序添加和取出

list按顺序添加和取出

List接口基本介绍

1)List集合类中元素是有序的(即添加顺序和取出顺序一致),且可以重复;

2)List集合类中的每个元素都有其对应的顺序索引,即支持索引;

3)List容器中的元素对应一个整数型的序号,记载其在容器中的索引位置,可以根据序号存取容器中的元素;

4)List接口实现类有:AbstractList类、AbstractSequentialList类、ArrayList类、AttributeList类、CopyOnWriteArrayList类、LinkedList类、RoleList类、Stack类、RoleUnresolvedList类、Vector类。

  1. package com.pero.list_;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. /**
  5. * @author Pero
  6. * @version 1.0
  7. */
  8. public class List_ {
  9. public static void main(String[] args) {
  10. List list = new ArrayList();
  11. //1.List集合类中的元素有序(添加和取出顺序一致)、且可以重复;
  12. list.add("tom");
  13. list.add("jake");
  14. list.add("marry");
  15. list.add("smith");
  16. System.out.println(list);
  17. //2.List集合中的每个元素都有其对应的顺序索引,支持索引
  18. System.out.println(list.get(1));
  19. //3.List集合都对应一个整数型的序号,记载其在容器中的位置,可以根据序号存取容器中的元素
  20. list.set(3,"lucy");
  21. System.out.println(list.get(3));
  22. //4.List接口的实现类有:AbstractList类、AbstractSequentialList类、ArrayList类、
  23. // AttributeList类、CopyOnWriteArrayList类、LinkedList类、RoleList类、Stack类、
  24. // RoleUnresolvedList类、Vector类
  25. }
  26. }

List接口的常用方法

  1. package com.pero.list_;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. /**
  5. * @author Pero
  6. * @version 1.0
  7. */
  8. public class ListMethod {
  9. public static void main(String[] args) {
  10. List list = new ArrayList();
  11. list.add("jake");
  12. list.add("lucy");
  13. //void add(int index, Object object)方法:在index位置,插入object元素
  14. list.add(1,"smith");
  15. System.out.println(list);
  16. //boolean addAll(int index, Collection collection)方法,从index位置,
  17. // 开始将collection中的所有元素添加进来
  18. List list2 = new ArrayList();
  19. list2.add("pero");
  20. list2.add("tom");
  21. list.addAll(2,list2);
  22. System.out.println(list);
  23. //Object get(int index):获取指定index位置的元素
  24. System.out.println(list.get(2));
  25. //int indexOf(Object object):返回object元素在集合中首次出现的位置索引
  26. System.out.println(list.indexOf("tom"));
  27. //int lastIndexOf(Object object):返回object元素在当前集合中末次出现的位置索引
  28. list.add("jake");
  29. System.out.println(list.lastIndexOf("jake"));
  30. //Object remove(int Index):移除指定index索引位置的元素,并返回该元素
  31. System.out.println(list.remove(0));
  32. System.out.println(list);
  33. //Object set(int index, Object object):设置指定index索引位置的元素为object,相当于替换
  34. list.set(1,"jake");
  35. System.out.println(list);
  36. //List subList(int formIndex, int toIndex):
  37. // 返回从formIndex到toIndex索引位置的子集合
  38. //[0,3) 0 <= 返回的子集合索引 < 3
  39. System.out.println(list.subList(1,3));
  40. }
  41. }

 List接口练习

  1. package com.pero.list_;
  2. import java.util.ArrayList;
  3. import java.util.Iterator;
  4. import java.util.List;
  5. /**
  6. * @author Pero
  7. * @version 1.0
  8. */
  9. public class ListExercise {
  10. public static void main(String[] args) {
  11. List list = new ArrayList();
  12. for (int i = 1; i < 13; i++) {
  13. list.add("hello"+i);
  14. }
  15. //在第二个元素位置插入pero
  16. list.add(1,"pero");
  17. //获取第五个元素
  18. System.out.println(list.get(4));
  19. //删除第六个元素
  20. System.out.println(list.remove(5));
  21. System.out.println(list);
  22. //修改第七个元素
  23. list.set(6,"三国演义");
  24. //使用迭代器遍历
  25. Iterator iterator = list.iterator();
  26. while (iterator.hasNext()) {
  27. Object object = iterator.next();
  28. System.out.println(object);
  29. }
  30. }
  31. }

List三种遍历方式

  1. package com.pero.list_;
  2. import java.util.*;
  3. /**
  4. * @author Pero
  5. * @version 1.0
  6. */
  7. public class ListFor {
  8. public static void main(String[] args) {
  9. List list = new ArrayList();
  10. //List list = new Vector();
  11. //List list = new LinkedList();
  12. list.add("jake");
  13. list.add("鱼香肉丝");
  14. list.add("tom");
  15. list.add("北京烤鸭");
  16. System.out.println(list);
  17. //迭代器遍历
  18. Iterator iterator = list.iterator();
  19. while (iterator.hasNext()) {
  20. Object object = iterator.next();
  21. System.out.println(object);
  22. }
  23. //增强for(快捷键大写的I)
  24. for (Object o :list) {
  25. System.out.println(o);
  26. }
  27. //普通for()
  28. for (int i = 0; i < list.size(); i++) {
  29. System.out.println(list.get(i));
  30. }
  31. }
  32. }

List排序练习

  1. package com.pero.list_;
  2. import java.util.*;
  3. /**
  4. * @author Pero
  5. * @version 1.0
  6. */
  7. public class ListEx {
  8. public static void main(String[] args) {
  9. //List接口的其他实现子类一样可以
  10. //List list = new ArrayList();
  11. //List list = new Vector();
  12. List list = new LinkedList();
  13. list.add(new Book("红楼梦",100,"曹雪芹"));
  14. list.add(new Book("西游记",80,"吴承恩"));
  15. list.add(new Book("三国",60,"罗贯中"));
  16. list.add(new Book("水浒传",130,"施耐庵"));
  17. list.add(new Book("西游记",60,"吴承恩"));
  18. //调用sort()方法进行排序
  19. sort(list);
  20. //使用迭代器遍历
  21. Iterator iterator = list.iterator();
  22. while(iterator.hasNext()){
  23. Object object = iterator.next();
  24. System.out.println(object);
  25. }
  26. //使用增强for进行遍历
  27. for (Object o :list) {
  28. System.out.println(o);
  29. }
  30. //使用普通for进行遍历
  31. for (int i = 0; i < list.size(); i++) {
  32. System.out.println(list.get(i));
  33. }
  34. }
  35. //排序方法
  36. public static void sort(List list){
  37. for (int i = 0; i < list.size() -1; i++) {
  38. for (int j = 0; j < list.size() -1 -i; j++) {
  39. //取出对象
  40. Book book1 = (Book) list.get(j);
  41. Book book2 = (Book) list.get(j+1);
  42. //指定对象属性排序要求
  43. if (book1.getPrice() < book2.getPrice()){
  44. //对集合对应位置的对象按照要求进行替换
  45. list.set(j,book2);
  46. list.set(j+1,book1);
  47. }
  48. }
  49. }
  50. }
  51. }
  52. class Book{
  53. private String name;
  54. private double price;
  55. private String author;
  56. public Book(String name, double price, String author) {
  57. this.name = name;
  58. this.price = price;
  59. this.author = author;
  60. }
  61. public String getName() {
  62. return name;
  63. }
  64. public void setName(String name) {
  65. this.name = name;
  66. }
  67. public double getPrice() {
  68. return price;
  69. }
  70. public void setPrice(double price) {
  71. this.price = price;
  72. }
  73. public String getAuthor() {
  74. return author;
  75. }
  76. public void setAuthor(String author) {
  77. this.author = author;
  78. }
  79. @Override
  80. public String toString() {
  81. return "名称:" + name + "\t\t价格" + price + "\t\t作者:" + author;
  82. }
  83. }

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

闽ICP备14008679号