数组增删 集合删除

一、数组增删

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提高】---数组增删 list删除 map删除的更多相关文章

  1. java提高(4)---数组增删 list删除 map删除

    数组增删 集合删除 一.数组增删 package com.test; import java.util.List; import java.util.ArrayList; import java.ut ...

  2. Java提高篇(三三)-----Map总结

    在前面LZ详细介绍了HashMap.HashTable.TreeMap的实现方法,从数据结构.实现原理.源码分析三个方面进行阐述,对这个三个类应该有了比较清晰的了解,下面LZ就Map做一个简单的总结. ...

  3. java中将数组、对象、Map、List转换成JSON数据

    如果要将数组.对象.Map.List转换成JSON数据,那我们需要一些jar包: json-lib-2.4-jdk15.jar ezmorph-1.0.6.jar commons-logging.ja ...

  4. Java中数组的插入,删除,扩张

    Java中数组是不可变的,但是可以通过本地的arraycop来进行数组的插入,删除,扩张.实际上数组是没变的,只是把原来的数组拷贝到了另一个数组,看起来像是改变了. 语法: System.arrayc ...

  5. java List 数组删除元素

    在 java 中,ArrayList 是一个很常用的类,在编程中经常要对 ArrayList 进行增.删.改.查操作.之前在学校时一直认为删除操作是最简单的,现在才越发觉得自己愚蠢.只需要设置好预期条 ...

  6. Java——删除Map集合中key-value值

    通过迭代器删除Map集合中的key-value值 Iterator<String> iter = map.keySet().iterator(); while(iter.hasNext() ...

  7. 根据key删除Map集合中的key-value映射

    一:在遍历Map时是不可以删除key-value映射的,如果根据key删除,如下: public static void main(String[] args) { Map<String,Obj ...

  8. 【方法1】删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录

    介绍 晚上无聊的时候,我做了一个測试题,測试题的大体意思是:删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录. 比如: I have a map with duplicate val ...

  9. coding++:java操作 FastDFS(上传 | 下载 | 删除)

    开发工具  IDEAL2017  Springboot 1.5.21.RELEASE --------------------------------------------------------- ...

随机推荐

  1. Linux系列教程(二十二)——Linux的bash变量

    上篇博客我们介绍了bash的一些基本功能,这是我们平时操作最频繁的.本篇博客我们介绍bash的变量,为后面编写shell脚本做铺垫. 1.什么是变量 变量是计算机内存的单元,其中存放的值可以改变. 当 ...

  2. [转载] FreeMarker教程

    转载自http://www.blogjava.net/freeman1984/archive/2010/11/04/337239.html FreeMarker是一个模板引擎,一个基于模板生成文本输出 ...

  3. python线程池实现多线程

    参考文献 http://www.open-open.com/news/view/1c0179b http://blog.jobbole.com/52060/ 按照这个博客,实现获取多台服务器的空间使用 ...

  4. JMS学习之路(一):整合activeMQ到SpringMVC 转载:http://www.cnblogs.com/xiaochangwei/p/5426639.html

    JMS的全称是Java Message Service,即Java消息服务.它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息.把它应用到实际的业务需求中的话我们可以 ...

  5. openSUSE 13.1 搭建 DNS服务器

    1. Setup Primary DNS Server Install bind9 BIND (Berkely Internet Name Domain) is a software for tran ...

  6. 【Python】三个例子教你写代码

    这篇文章包括用Python编写的斐波那契数列,三位数的水仙花数和百钱买百鸡的基础代码: (一)斐波那契数列: ''' def hanshu(n): n_1 = 1 n_2 = 1 m = n sumn ...

  7. Mac OS X更新VirtualBox以后Genymotion无法启动的一种情况

    这两天VirtualBox更新到5.0了,于是乎就升级了.结果升级后就中了个大奖,Genymotion起不来了.我用的是Genymotion 2.5,不久前刚升级的,因为官网打不开,不知是不是最新版. ...

  8. struts2对于处理JSON的配置

    由于最近几年日益流行前后端分离模式,JSON作为数据载体也变得不可或缺.几乎所有的web框架都需要支持JSON,下面咱就一起了解下struts2是如何支持JSON的. 对于JSON的发送 这里有两种方 ...

  9. C语言之循环计数

    #include<stdio.h>int main(){int num,count=0,i=0;scanf("%d",&num);num/=10;count++ ...

  10. Solr7 安装部署 管理界面介绍

    Solr7 安装部署 管理界面介绍 本章重点介绍CentOS 安装部署Solr7 ,Solr的管理界面介绍,添加核心Core配置,Dataimport导入数据,Documents 在线维护索引,Que ...