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();
}
}
}
}
大家看下哪里不对,或者需要补充的,欢迎指点。
java提高(4)---数组增删 list删除 map删除的更多相关文章
- 【java提高】---数组增删 list删除 map删除
数组增删 集合删除 1.数组增删 package com.test; import java.util.List; import java.util.ArrayList; import java.ut ...
- Java提高篇(三三)-----Map总结
在前面LZ详细介绍了HashMap.HashTable.TreeMap的实现方法,从数据结构.实现原理.源码分析三个方面进行阐述,对这个三个类应该有了比较清晰的了解,下面LZ就Map做一个简单的总结. ...
- java提高篇(十九)-----数组之二
前面一节主要介绍了数组的基本概念,对什么是数组稍微深入了一点点,在这篇博文中主要介绍数组的其他方面. 三.性能?请优先考虑数组 在java中有很多方式来存储一系列数据,而且在操作上面比数组方便的多?但 ...
- java中将数组、对象、Map、List转换成JSON数据
如果要将数组.对象.Map.List转换成JSON数据,那我们需要一些jar包: json-lib-2.4-jdk15.jar ezmorph-1.0.6.jar commons-logging.ja ...
- Java——删除Map集合中key-value值
通过迭代器删除Map集合中的key-value值 Iterator<String> iter = map.keySet().iterator(); while(iter.hasNext() ...
- Java 集合(List、Set、Map 等)相关问答归纳再整理
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- Java提高(一)---- HashMap
阅读博客 1, java提高篇(二三)-----HashMap 这一篇由chenssy发表于2014年1月,是根据JDK1.6的源码讲的. 2,Java类集框架之HashMap(JDK1.8)源码剖析 ...
- JAVA提高十二:HashMap深入分析
首先想说的是关于HashMap源码的分析园子里面应该有很多,并且都是分析得很不错的文章,但是我还是想写出自己的学习总结,以便加深自己的理解,因此就有了此文,另外因为小孩过来了,因此更新速度可能放缓了, ...
- Java集合排序及java集合类详解--(Collection, List, Set, Map)
1 集合框架 1.1 集合框架概述 1.1.1 容器简介 到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们就可以利用它们来做一 ...
随机推荐
- Python3创建项目时创建了一个叫做“keyword"的包,运行项目时报ImportError: cannot import name 'iskeyword'错误
导致该问题的原因为在Python3中keyword是python的关键字包,所以在给包命名时应避免使用关键字进行命名.解决方法,将keword包名称修改为'keywords'就可以了.
- 不能ping通主机名
https://www.linuxidc.com/Linux/2017-03/142253.htm sudo apt-get install winbind , sudo apt-get instal ...
- Spring Boot中使用Lombok消除POJO类模板代码
首先,要让IDE支持Lombok,这里以idea为例进行介绍. 点击项目的“File”-—>"settings"—>"Plugins",在marke ...
- angular 实现 echarts 拖动区域进行放大 方法
实现逻辑: 1.通过鼠标摁下事件 和弹出事件 获取x轴的index 之后去x轴的list中去获取两个坐标点 2.之后将这两个数据作为参数 传到后台更新数据 3.记录下来这两个坐标点 放到lis ...
- 关于echarts生成雷达图的一些参数介绍
export const industryFactorOption = { title: { text: '雷达图', textStyle: { color: 'rgba(221,221,221,1) ...
- thinkphp 把小程序码二进制流存储到本地
public function getxcxm(){ $id = input('id'); $astk = json_decode($this->getasstk())->access_t ...
- ASP.NET获取POST提交过来的数据流,转换成Json格式的字符串
public class Public { private static Public _instance = new Public(); /// <summary> /// 全局访问点 ...
- 浅析列表页请求优化(history API)
最近搞了下列表页请求的功能,并做了一下调研整理,记此文备忘. 列表页请求的功能到处可见,比如在博客园. 点击相应的页码,页面返回相应的内容,看上去似乎大同小异,但是一些小的细节还是可以区分优劣. fu ...
- recyclerview刷新
https://blog.csdn.net/leejizhou/article/details/51179233 RecyclerView之更新UI数据的高级用法 https://www.cnblog ...
- 关于n维和n-1维欧式空间
我们从小就说,"点动成线,线动成面,面动成体",其中的空间的概念到底是啥?之前没有好好想过,在机器学习中多次遇到"空间"."超平面",&qu ...