Java List 集合

张裕  论坛元老 | 2024-11-25 14:52:27 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1405|帖子 1405|积分 4215

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
怀旧网个人博客网站地址:怀旧网,博客详情:Java List 集合
List 集合的特点



List 集合的特有方法

由于List是Collection 的子类,以是List也直接继承了所有的Collection 的方法。


List 集合方法代码测试

创建集合对象

由于List也是接口,以是同样不能直接对List进行实例化-这里还是使用ArrayList子类来进行实例化
  1. public static void main(String[] args){
  2.     List<Student> list = new ArrayList<>();
  3. }
复制代码

add方法

  1. public static void main(String[] args){
  2.     List<Student> list = new ArrayList<>();
  3.     list.add(new Student("cat", 1));
  4.     list.add(new Student("age", 2));
  5.     list.add(1, new Student("age", 2));
  6.     System.out.println(list);
  7. }
复制代码


​ 这边第一次和第二次的添加方式实际上是使用的父类Collection的add方法,但是在第三行添加方法才是使用List本身特有的添加方法。
  1. public static void main(String[] args){
  2.     List<Student> list = new ArrayList<>();
  3.     list.add(1, new Student("age", 2));
  4.     System.out.println(list);
  5. }
复制代码


注意:在使用List的add方法时直接添加数据的时候,索引的位置上面的前一个位置必须有元素,要是没有就会报错IndexOutOfBoundsException。

remove方法

List 中的remove方法通过下标进行元素删除,当元素被删除后-要是删除成功会返回删除后的元素。
  1. public static void main(String[] args){
  2.     List<Student> list = new ArrayList<>();
  3.     list.add(new Student("cat", 1));
  4.     list.add(new Student("age", 2));
  5.     list.add(1, new Student("age", 2));
  6.     list.remove(1);
  7.     System.out.println(list);
  8. }
复制代码


List 本身的remo方法,是直接删除下标所在位置的元素。
  1. public static void main(String[] args){
  2.     List<Student> list = new ArrayList<>();
  3.     list.add(new Student("cat", 1));
  4.     list.add(new Student("age", 2));
  5.     list.add(1, new Student("age", 2));
  6.     list.remove(3);
  7.     System.out.println(list);
  8. }
复制代码


注意:在使用删除的时候,要是索引位置超出了当前属于总长度的大小,就会报错IndexOutOfBoundsException。
remove方法删除int范例测试
  1. public static void main(String[] args){
  2.     List<Integer> list = new ArrayList<>();
  3.     list.add(1);
  4.     list.add(2);
  5.     list.add(3);
  6.     list.remove(1);
  7.     System.out.println(list);
  8. }
复制代码


在删除int范例的数据时:只能够删除下标的元素,而不是删除指定值的元素-如果想删除指定值,可以通过下面的方式实现:
  1. public static void main(String[] args){
  2.     List<Integer> list = new ArrayList<>();
  3.     list.add(1);
  4.     list.add(2);
  5.     list.add(3);
  6.     list.remove(new Integer(1));
  7.     System.out.println(list);
  8. }
复制代码


这里是创建一个Integer的对象来进行删除,就可以实现删除指定元素值的删除。

set 方法

在执行成功set方法后,会返回被修改后的元素数据。
  1. public static void main(String[] args){
  2.     List<Student> list = new ArrayList<>();
  3.     list.add(new Student("cat", 1));
  4.     list.add(new Student("age", 2));
  5.     list.add(1, new Student("age", 2));
  6.     list.set(1, new Student("aa", 12));
  7.     System.out.println(list);
  8. }
复制代码


方法作用是修改当前的索引位置的值。
注意:当修改位置索引大于当前元素最大下标时同上也会报错IndexOutOfBoundsException-这边就不做演示了。

get 方法

  1. public static void main(String[] args){
  2.     List<Student> list = new ArrayList<>();
  3.     list.add(new Student("cat", 1));
  4.     list.add(new Student("age", 2));
  5.     list.add(1, new Student("age", 2));
  6.     System.out.println(list.get(1));
  7. }
复制代码


get 方法是用来获取当前下标位置的元素,同理当下标元素大小高出元素最大下标同样会报错IndexOutOfBoundsException
List 集合的遍历方式



以上就是List集合的5种遍历方式--在Collection中实现过此中的三种,可以参考:网页链接
列表迭代器遍历



和Collection 方法一样可以进行迭代输出--注意获取迭代器对象的时候是调用listIterator()方法。。
  1. public static void main(String[] args){
  2.     List<Integer> list = new ArrayList<>();
  3.     list.add(1);
  4.     list.add(2);
  5.     list.add(3);
  6.     ListIterator<Integer> iterator = list.listIterator();
  7.     while (iterator.hasNext()){
  8.         Integer data = iterator.next();
  9.         System.out.println(data);
  10.     }
  11. }
复制代码


重点介绍新增的方法:
previous 和 hasPrevious 方法

作用: 可以实现让指针像前移,可以实现倒序的遍历
  1. public static void main(String[] args){
  2.     List<Integer> list = new ArrayList<>();
  3.     list.add(1);
  4.     list.add(2);
  5.     list.add(3);
  6.     ListIterator<Integer> iterator = list.listIterator();
  7.     while (iterator.hasNext()){
  8.         Integer data = iterator.next();
  9.         System.out.println(data);
  10.     }
  11.     System.out.println("=================");
  12.     while (iterator.hasPrevious()){
  13.         Integer data = iterator.previous();
  14.         System.out.println(data);
  15.     }
  16. }
复制代码


注意:和next方法一样,当指针在起始位置时调用previous方法就会发生报错(由于当前指针的前一个位置是没有数据的)
  1. public static void main(String[] args){
  2.     List<Integer> list = new ArrayList<>();
  3.     list.add(1);
  4.     list.add(2);
  5.     list.add(3);
  6.     ListIterator<Integer> iterator = list.listIterator();
  7.     Integer data = iterator.previous();
  8. }
复制代码


新增add方法-和Collection一样必要用迭代器进行添加方法例如:
  1. public static void main(String[] args){
  2.     List<Integer> list = new ArrayList<>();
  3.     list.add(1);
  4.     list.add(2);
  5.     list.add(3);
  6.     ListIterator<Integer> iterator = list.listIterator();
  7.     while(iterator.hasNext()){
  8.         Integer data = iterator.next();
  9.         if(data.equals(1)){
  10.             iterator.add(4);
  11.         }
  12.     }
  13.     System.out.println(list);
  14. }
复制代码


同理,在迭代途中使用list的add方法同样会报错
  1. public static void main(String[] args){
  2.     List<Integer> list = new ArrayList<>();
  3.     list.add(1);
  4.     list.add(2);
  5.     list.add(3);
  6.     ListIterator<Integer> iterator = list.listIterator();
  7.     while(iterator.hasNext()){
  8.         Integer data = iterator.next();
  9.         if(data.equals(1)){
  10.             list.add(4);
  11.         }
  12.     }
  13.     System.out.println(list);
  14. }
复制代码


删除方法也同Collection一样
  1. public static void main(String[] args){
  2.     List<Integer> list = new ArrayList<>();
  3.     list.add(1);
  4.     list.add(2);
  5.     list.add(3);
  6.     ListIterator<Integer> iterator = list.listIterator();
  7.     while(iterator.hasNext()){
  8.         Integer data = iterator.next();
  9.         if(data.equals(1)){
  10.             iterator.remove();
  11.         }
  12.     }
  13.     System.out.println(list);
  14. }
复制代码

平凡for循环遍历

  1. public static void main(String[] args){
  2.     List<Integer> list = new ArrayList<>();
  3.     list.add(1);
  4.     list.add(2);
  5.     list.add(3);
  6.     for (int i = 0; i < list.size(); i++) {
  7.         System.out.println(list.get(i));
  8.     }
  9. }
复制代码


List 遍历总结




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张裕

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表