java提高(4)---数组增删 list删除 map删除
数组增删 集合删除
一、数组增删
package com.test; import java.util.List; import java.util.ArrayList; import java.util.Set; import java.util.HashSet; public class ArrayBlock { /* 去掉数组中重复的值 */ public static void testA() { String [] str = {"cat", "dog", "pig", "dog",}; // 先把数组转为集合 List<String> list = new ArrayList<String>(); for (int i=0; i<str.length; i++) { if(!list.contains(str[i])) { list.add(str[i]); } } /* toArray(T[] a)用法 * 因为list集合默认是object类型,那传入new String[2],首先有泛型作用 * 如果list长度大于2,那new String[2]只有泛型作用,如果长度等于2 * 那就用new String[2]这个数组,如果小于2, 那数组多余部分为null */ String[] newStr = list.toArray(new String[1]); } //删除数组中其中一个元素 public static void testB() { String [] str = {"cat", "dog", "pig", "dog",}; //删除pig List<String> list = new ArrayList<String>(); for (int i=0; i<str.length; i++) { list.add(str[i]); } //list移除记得放外面 list.remove(2); //返回一个包含所有对象的指定类型的数组 String[] newStr = list.toArray(new String[1]); } //在数组中增加一个元素 public static void testC() { String [] str = {"cat", "dog", "pig", "dog",}; //增加pee List<String> list = new ArrayList<String>(); for (int i=0; i<str.length; i++) { list.add(str[i]); } // list.add()默认在集合最后插入数据,而 add(2, "pee")就指定在索引第二个位置插入 list.add(2, "pee"); String[] newStr = list.toArray(new String[1]); } }
二、集合删除数据
package com.test; import java.util.List; import java.util.ArrayList; import java.util.Iterator; public class ListBlock { public void deliect() { List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); //方法一: 用for增强方法删除 for (String str : list) { if (str.equals("a")) /* 在使用增强for循环的过程不能对元素进行删除、修改、增加的操作等操作。 * 但是,如果操作一下,立刻break跳出,也是不会报错的! */ list.remove(str); } //方法二:使用传统for循环遍历 for (int i = 0; i < list.size(); i++) { String str = list.get(i); if (str.equals("a")) { /* 不会报错,但会少都一条信息, 因为执行删除操作;删除完成,则集合后边的元素会自动前移, * 导致下次遍历漏掉一个元素,所以少删后面那个元素。 * 解决方法:在remove();方法下写上 --i; */ list.remove(i); } } //方法三:使用api提供的方法list.iterator(),这个方法不会出现问题 Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String str = iterator.next(); if (str.equals("a")) { iterator.remove(); } } } }
三、map集合删除数据
package com.test; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; public class ListBlock { public static void main(String[] args) { HashMap<String, String> map = new HashMap<String, String>(); map.put("1", "one"); map.put("2", "two"); map.put("3", "three"); map.put("4", "four"); // 删除元素 Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, String> entry = it.next(); String key = entry.getKey(); int k = Integer.parseInt(key); if (k % 2 == 1) { /*iterator的remove()方法,也有需要我们注意的地方: * 每调用一次iterator.next()方法,只能调用一次remove()方法。 * 调用remove()方法前,必须调用过一次next()方法。 */ it.remove(); } } } }
大家看下哪里不对,或者需要补充的,欢迎指点。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了