建阳网站建设,深圳网站建设怎么做,网站视频做参考文献,凉州区新农村建设网站Java列表List的定查改增删操作定义查找遍历元素与下标互查修改增加删除java.util中提供了三种常用的集合类#xff0c;列表List、集合Map和字典Set。这些集合类相较于数组有更多功能#xff0c;并且都可以通过Iterator#xff08;迭代器#xff09;来访问。
在这篇博客中列表List、集合Map和字典Set。这些集合类相较于数组有更多功能并且都可以通过Iterator迭代器来访问。
在这篇博客中首先来介绍一下列表List。
List与数组类似按顺序存储元素但可以方便地增加和删除元素。List可以由数组ArrayList或链表LinkedList来实现。ArrayList方便查找元素但是不方便增加/删除元素LinkedList方便增加/删除元素但不方便查找元素。一般使用ArrayList但也要具体情况具体分析。
定义
List的定义方法有很多在这里我只介绍两种其他的方式可以参考Java 中初始化 List 集合的 6 种方式! 。
第一种常规方式比较繁琐。
import java.util.*;public class Main
{public static void main(String[] args) {ListInteger list new ArrayList();list.add(1);list.add(2);list.add(3);for(int item : list){System.out.println(item);}}
}
第二种方式借助Arrays工具类。
import java.util.*;public class Main
{public static void main(String[] args) {ListInteger list new ArrayList(Arrays.asList(1, 2, 3));for(int item : list){System.out.println(item);}}
}查找
遍历
首先考虑遍历List有两种方法。第一种方法是for循环下标第二种方法是使用Iterator迭代器。
第一种方法有点类似于数组的操作使用get函数。
import java.util.*;public class Main
{public static void main(String[] args) {ListInteger list new ArrayList(Arrays.asList(1, 2, 3));for(int i 0; i list.size(); i){System.out.println(list.get(i));}}
}第二种方法也有两种不同的写法。
第一种写法上面已经展示过了for循环Iterator。
import java.util.*;public class Main
{public static void main(String[] args) {ListInteger list new ArrayList(Arrays.asList(1, 2, 3));for(int item : list){System.out.println(item);}}
}第二种写法使用Iterator的hasNext函数和next函数。
import java.util.*;public class Main
{public static void main(String[] args) {ListInteger list new ArrayList(Arrays.asList(1, 2, 3));for(Iterator it list.iterator(); it.hasNext();){System.out.println(it.next());}}
}总的来说用Iterator要比用下标更快一些。此外如果用for循环下标的方式在List删除元素时会有一些问题具体可见List中remove()方法的注意事项。
元素与下标互查
其次考虑根据下标查找List中的元素以及根据元素查找其在List中的下标。
对于第一个问题在上面已经展示过了使用get函数。
import java.util.*;public class Main
{public static void main(String[] args) {ListInteger list new ArrayList(Arrays.asList(1, 2, 3));int index 1;int item list.get(index);System.out.println(item);}
}对于第二个问题List有一个String中同名的函数indexOf函数。
import java.util.*;public class Main
{public static void main(String[] args) {ListInteger list new ArrayList(Arrays.asList(1, 2, 3));int item 3;int index list.indexOf(item);System.out.println(index);}
}修改
List要修改元素很简单使用一个get函数相对应的函数set函数。set函数对指定的下标进行修改。
import java.util.*;public class Main
{public static void main(String[] args) {ListInteger list new ArrayList(Arrays.asList(1, 2, 3));list.set(0, 666);for(int item : list){System.out.println(item);}}
}增加
List要增加元素同样很简单使用一个set函数类似的函数add函数。add函数对指定的下标进行增加。
import java.util.*;public class Main
{public static void main(String[] args) {ListInteger list new ArrayList(Arrays.asList(1, 2, 3));list.add(0, 666);for(int item : list){System.out.println(item);}}
}删除
List可以按下标删除元素或者直接删除某个元素。
如果是按下标删除元素那么返回值为被删除的元素。
import java.util.*;public class Main
{public static void main(String[] args) {ListInteger list new ArrayList(Arrays.asList(1, 2, 3));list.remove(1);for(int item : list){System.out.println(item);}}
}如果是按元素删除那么返回值为true/false表示是否已删除。值得注意的是当List为int型时如果直接将元素传入remove函数会被当作下标处理。需要将元素进行显式类型转换。
import java.util.*;public class Main
{public static void main(String[] args) {ListInteger list new ArrayList(Arrays.asList(1, 2, 3));list.remove((Integer) 1);for(int item : list){System.out.println(item);}}
}在删除元素之前可以先判断List中是否包含该元素。与String类似可以用contains函数。
import java.util.*;public class Main
{public static void main(String[] args) {ListInteger list new ArrayList(Arrays.asList(1, 2, 3));if(list.contains((Integer) 1)) {list.remove((Integer) 1);}for(int item : list){System.out.println(item);}}
}参考:
Java集合简介
使用List
Java 中初始化 List 集合的 6 种方式!
在Java中的List中查找元素的索引
List中remove()方法的注意事项
【Java】从List中正确删除一个整数