首页 / JAVA / java 数据类型:集合接口Collection之List~ArrayList:remove移除;replaceAll改变原有值;sort排序;迭代器listIterator();
java 数据类型:集合接口Collection之List~ArrayList:remove移除;replaceAll改变原有值;sort排序;迭代器listIterator();
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java 数据类型:集合接口Collection之List~ArrayList:remove移除;replaceAll改变原有值;sort排序;迭代器listIterator();,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4690字,纯文字阅读大概需要7分钟。
内容图文
![java 数据类型:集合接口Collection之List~ArrayList:remove移除;replaceAll改变原有值;sort排序;迭代器listIterator();](/upload/InfoBanner/zyjiaocheng/594/ea7cc4ff8f9644cc9a10b19adb2c003e.jpg)
什么是List集合:
特点:
- 元素有序可重复的集合。
- 集合中每个元素都有其对应的顺序索引。
- List集合默认按元素的添加顺序设置元素的索引,索引从0开始。
- void add(int index, Object element) : 将元素element插入到List集合的index处
- boolean addAll(int index, Collection c) : 将集合C包含的所有元素都插入到List集合的index处
- Object get(int index) : 返回集合index索引处的元素
- int indexOf(Object o) : 返回对象o在List集合中第一次出现的位置
- Object remove(int index): 删除并返回index索引处的元素
- Object set (int index, Object element) : 将index索引处的元素替换为element对象,返回被替换的旧元素。
- List subList(int fromIndex, int toIndex): 返回从fromIndex(包含)到索引toIndex(不包含)处所有集合元素的自己和。
- void replaceAll(UnaryOperator operator):根据operator指定计算规则重新设置List集合中的所有元素(java8+)。
- void sort(Comparator c) : 根据Comparator参数对List集合的元素排序。
remove移除
移除指定下标或相同对象(对象的equal方法判断)的第一个元素;有限精确匹配,传入数字优先判断下标
原理:List在remove的时候,就是调用equals方法来判断两个元素是否相等的,并且是调用remove方法参数的equals:
import java.util.ArrayList; /** * @ClassName ArrayListRemoveExample * @projectName: object1 * @author: Zhangmingda * @description: XXX * date: 2021/4/10. */ public class ArrayListRemoveExample { private static class TestObj{ @Override public boolean equals(Object obj) { return true; } } public static void main(String[] args) { ArrayList arrayList = new ArrayList(); arrayList.add("张三"); arrayList.add("李四"); arrayList.add("王五"); arrayList.add("赵六"); System.out.println(arrayList); arrayList.remove(1); //精确匹配原则,数字优先匹配下标 arrayList.remove("王五"); //其次匹配对象 System.out.println(arrayList); //测试移除原理,是调用需要移除对象的equal方法判断是否和已有元素相等 arrayList.remove(new TestObj()); System.out.println(arrayList); //张三被移除 } }
replaceAll处理数据并改变原有值
import java.util.ArrayList; import java.util.function.UnaryOperator; /** * @ClassName ArrayListReplaceAllExample * @projectName: object1 * @author: Zhangmingda * @description: XXX * date: 2021/4/10. */ public class ArrayListReplaceAllExample { public static void main(String[] args) { ArrayList arrayList = new ArrayList(); arrayList.add(1); arrayList.add(2); arrayList.add(3); //数据处理 arrayList.replaceAll( o -> { int tmpNum = (int)o; return tmpNum * tmpNum; }); System.out.println(arrayList); //[1, 4, 9] } }
sort对ArrayList集合内元素重新排序
import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.NavigableMap; /** * @ClassName ArrayListSortExample * @projectName: object1 * @author: Zhangmingda * @description: XXX * date: 2021/4/10. */ public class ArrayListSortExample { public static void main(String[] args) { List nums = new ArrayList(); nums.add(3); nums.add(2); nums.add(4); nums.add(1); System.out.println(nums); //[3, 2, 4, 1] //自定义排序 nums.sort(new Comparator() { @Override public int compare(Object o, Object t1) { return (int)o - (int)t1; } }); System.out.println(nums); //[1, 2, 3, 4] nums.sort((o1, o2) -> (int)o2 - (int)o1); //lambda方式 System.out.println(nums); //[4, 3, 2, 1] } }
List迭代器listIterator():
除了继承Collection接口的iterator()方法,List还提供了一个listIterator()方法,该方法返回一个ListIterator()对象。ListIterator接口继承了Iterator接口,提供了专门操作List的方法。ListIterator在Iterator的基础上增加了三个方法:- boolean hasPrevious() : 返回迭代器关联的结合是否还有上一个元素
- boolean previous(): 返回迭代器的上一个元素
- void add(Object o): 在当前游标所在位置插入一个元素
import java.util.ArrayList; import java.util.ListIterator; /** * @ClassName ArrayListListIteratorExample * @projectName: object1 * @author: Zhangmingda * @description: XXX * date: 2021/4/10. */ public class ArrayListListIteratorExample { public static void main(String[] args) { ArrayList persons = new ArrayList(); persons.add("张三"); persons.add("李四"); persons.add("王五"); ListIterator listIteratorPersons = persons.listIterator(); listIteratorPersons.add("赵六"); //游标位置0 System.out.println(persons);//[赵六, 张三, 李四, 王五] while (listIteratorPersons.hasNext()){ System.out.println(listIteratorPersons.next()); } listIteratorPersons.add("赵六");//游标位置: 对象.length-1 System.out.println(persons); //[赵六, 张三, 李四, 王五, 赵六] } }
Arrays.ArrayList: 长度不可变
我们还可以用Arrays.asList来创建一个ListList persons = Arrays.asList("李一桐", "刘亦菲", "鞠婧祎"); persons.forEach(person -> System.out.println(person)); persons.add("易烊千玺"); //这行代码直接报错这个List是一个ArrayList,但是我们要注意,这个是Arrays类里面一个叫做ArrayList的内部类,不是我们前面学的java.util包下面的ArrayList。这个List长度是固定不可变的。如果我们调用add方法添加元素,直接抛出异常。 ? ?
内容总结
以上是互联网集市为您收集整理的java 数据类型:集合接口Collection之List~ArrayList:remove移除;replaceAll改变原有值;sort排序;迭代器listIterator();全部内容,希望文章能够帮你解决java 数据类型:集合接口Collection之List~ArrayList:remove移除;replaceAll改变原有值;sort排序;迭代器listIterator();所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。