java 删除数组元素与删除重复数组元素的代码

 更新时间:2013年10月02日 00:12:28   作者:  
在java中删除数组元素与过滤重复数组元素我们都会需要去遍历数组然后根据我们设置的值或方法进行去除数组

删除数组借助于list

复制代码 代码如下:

private String[] removePaths(String path, String[] srcpaths) {
  List<String> list = new ArrayList<String>();
  int k = srcpaths.length;//原字符串长度
  int i=0;
  while(i<k){
   if(!srcpaths[i].equals(path)){
    list.add(srcpaths[i]);                      //不等就加入list
   }
   i++;
  }
  String[] temp = new String[list.size()];
  for(int j=0;j<list.size();j++){
   temp[j] = list.get(j);
  }
  return temp;
}

没编译器,随便写写,大概就那个意思吧。。。

复制代码 代码如下:

private String[] removePaths(String path, String[] srcpaths) {
    List list = Arrays.asList(srcpaths);
    list.remove(path);
    String[] temp = new String[list.size()];
    return list.toArray(temp);
}

删除数组中相同的元素

先把源数组进行默认排序

使相同元素相邻

然后进行循环操作删除相同元素

复制代码 代码如下:

<html>
<body>
<script type="text/javascript">
var source = ["林冲","鲁智深","戴宗","林冲","时迁","朱贵"];
var target = new Array();
source.sort();
target.push(source[0]);

for(var i=1;i<source.length;i++)
{
if(source[i] != source[i-1])
{
target.push(source[i]);
}
}
document.write('原数组:' + source + "<br />");
document.write('所需数组:' + target);
</script>
</body>
</html>

再补充两个实例

复制代码 代码如下:

    public static void main(String[] args) {
    getDistinct(new int[] { 6, 7, 3, 6, 5, 2, 7, 8 });
    }
    static void getDistinct(int array[]) {
    java.util.List list = new java.util.ArrayList();
    for (int i = 0; i < array.length; i++) {
    if (!list.contains(array[i])) {
    list.add(array[i]);
    System.out.print(array[i] + " ");
    }
    }
    }

    输出:6 7 3 5 2 8 

看了一下ArrayList的contains()方法源码:

复制代码 代码如下:

    public boolean contains(Object elem) {
    return indexOf(elem) >= 0;
    }
    public int indexOf(Object elem) {
    if (elem == null) {
    for (int i = 0; i < size; i++)
    if (elementData[i]==null)
    return i;
    } else {
    for (int i = 0; i < size; i++)
    if (elem.equals(elementData[i]))
    return i;
    }
    return -1;
    }

相关文章

  • Java多线程中的Executor框架解析

    Java多线程中的Executor框架解析

    这篇文章主要介绍了Java多线程中的Executor框架解析,Executor 框架是 Java5 之后引进的,在 Java 5 之后,通过 Executor 来启动线程比使用 Thread 的 start 方法更好,除了更易管理,效率更好,需要的朋友可以参考下
    2023-12-12
  • SpringBoot中的自定义starter

    SpringBoot中的自定义starter

    这篇文章主要介绍了SpringBoot中的自定义starter,Starter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境(条件)进行自动配置,需要的朋友可以参考下
    2024-01-01
  • 使用Spring Data JDBC实现DDD聚合的示例代码

    使用Spring Data JDBC实现DDD聚合的示例代码

    这篇文章主要介绍了使用Spring Data JDBC实现DDD聚合的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • spring依赖注入成功但在调用接口的时候拿到的依赖却是null问题

    spring依赖注入成功但在调用接口的时候拿到的依赖却是null问题

    这篇文章主要介绍了spring依赖注入成功但在调用接口的时候拿到的依赖却是null问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Java中public关键字用法详细讲解

    Java中public关键字用法详细讲解

    这篇文章主要给大家介绍了关于Java中public关键字用法的相关资料,public关键字是和访问权限相关的,它所修饰的方法对所有类都是可以访问的,需要的朋友可以参考下
    2023-09-09
  • 使用JavaConfig代替xml实现Spring配置操作

    使用JavaConfig代替xml实现Spring配置操作

    这篇文章主要介绍了使用JavaConfig代替xml实现Spring配置操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java经典算法之快速排序详解

    Java经典算法之快速排序详解

    这篇文章主要给大家介绍了关于Java经典算法之快速排序的相关资料,需快速排序是一种分治法的排序算法,其基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有元素均比另一部分的元素小,然后分别对这两部分继续进行排序,需要的朋友可以参考下
    2024-07-07
  • java8中parallelStream性能测试及结果分析

    java8中parallelStream性能测试及结果分析

    本篇文章给大家用代码实例做了segmentfaultjava8中parallelStream性能测试,并对测试结果做了说明,需要的朋友学习下吧。
    2018-01-01
  • Java应该在哪里判断List是否为空

    Java应该在哪里判断List是否为空

    在Java中,我们常用List来存储数据,但是我们怎么判断它是否成功带来了我们需要的数据呢?下面这篇文章主要给大家介绍了关于Java应该在哪里判断List是否为空的相关资料,需要的朋友可以参考下
    2022-02-02
  • java通过AOP实现全局日志打印详解

    java通过AOP实现全局日志打印详解

    最近自己一直再看现有微服务的日志模块,发现就是使用AOP来做controller层的日志处理,加上项目在进行架构优化,这篇文章主要给大家介绍了关于java通过AOP实现全局日志打印的相关资料,需要的朋友可以参考下
    2022-01-01

最新评论