//第一种方式:最开始想到的是利用Set集合的不可重复性进行元素过滤
 public static Object[] oneClear(Object[] arr){
  Set set = new HashSet();
  for(int i=0;i<arr.length;i++){
    set.add(arr[i]);
   }
  return set.toArray();
 }

//第二种方式:要想保持原数组的顺序就使用有顺序、不重复特点的链表的哈希集合
 public static Object[] twoClear(Object[] arr){
  LinkedHashSet<Object> temp = new LinkedHashSet<>();
  for(int i=0;i<arr.length;i++){
     temp.add(arr[i]);
   }
  return temp.toArray();
 }

//第三种方式:创建一个list集合,然后遍历数组将元素放入集合,再用contains()方法判断一个集合中是否已存在该元素即可
 public static Object[] threeClear(Object[] arr){
  List list = new ArrayList();
  for(int i=0;i<arr.length;i++){
   if(!list.contains(arr[i])){
    list.add(arr[i]);
   }
  }
  return list.toArray();
 }

//第四种方式:两层循环遍历原数组,然后逐个判断是否和之后的元素重复,同时设立一个标记,用来分辨是否重复,根据标记将不重复的元素存入新数组
 public static Object[] fourClear(Object[] arr){
 int t=0;

   //临时数组
  Object[] xinArr=new Object[arr.length];
  
  for(int i=0;i<arr.length;i++){
   //声明标记,是否重复
   boolean isRepeat = true;
   for(int j=i+1;j<arr.length;j++){
    //如果有重复元素,将标记置为false
    if(arr[i]==arr[j]){
     isRepeat = false;
     break;
    }
   }
   //标记为true表示没有重复元素
   if(isRepeat){
    xinArr[t] = arr[i];
    t++;
   }
  }
  //去重后数组
  Object[] newArr = new Object[t];
  System.arraycopy(xinArr, 0, newArr, 0, t);
  return newArr;
 }

 
public static void main(String[] args) {
  Object[] arrs={1,2,5,2,45,6,23,6,3,4,3,6,5,1};
  System.out.println("one:");
  printArray(oneClear(arrs));
  System.out.println("two:");
  printArray(twoClear(arrs));
  System.out.println("three:");
  printArray(threeClear(arrs));
  System.out.println("four:");
  printArray(fourClear(arrs));
 }
public static void printArray(Object[] arr){
  for(Object object:arr){
   System.out.print(object+" ");
  }
  System.out.println("");
 结果:

最新文章

  1. 独立成分分析(ICA)在fMRI数据处理时timecourse的理解
  2. 【python】多进程学习
  3. 【JAVA】JAVAMail使用属性资料
  4. 20145334赵文豪 《Java程序设计》第1周学习总结
  5. JsRender for index 循环索引使用说明
  6. jQuery easyui combobox级联及内容联想
  7. NOLOCK、HOLDLOCK、UPDLOCK、TABLOCK、TABLOCKX
  8. hibernate search例子
  9. 正则匹配 去掉 多余的js和html标签
  10. NPOI读取Excel,导入数据到Excel练习01
  11. 文件I/O之fcntl函数
  12. [jobdu]二维数组中的查找
  13. redis 源代码分析(一) 内存管理
  14. 一个想法照进现实-《IT连》创业项目:关于团队组建
  15. “海市蜃楼”般的逛街体验——VR全景智慧城市常诚
  16. Error Code: 1318. Incorrect number of arguments for PROCEDURE student.new_procedure; expected 0, got
  17. EasyUI整合篇
  18. Linux 下MQ的安装和配置亲测
  19. [pytorch修改]npyio.py 实现在标签中使用两种delimiter分割文件的行
  20. 深入浅出的webpack4构建工具--webpack4+vue+vuex+mock模拟后台数据(十九)

热门文章

  1. vue+element ui table组件封装,使用render渲染
  2. SQL mybatis动态查询小结
  3. java.util.ConcurrentModificationException 异常原因和解决方法
  4. Python 的直接赋值、Deepcopy、Copy的区别
  5. python学习记录(持续更新)--最最最基础的一部分(方法,异常处理,注释,类)
  6. 02-07Android学习进度报告七
  7. 【转载】Cmd Markdown 公式指导手册
  8. Android游戏开发学习(5)--实现Button悬浮于与SurfaceView之上
  9. 34 java 文件过滤 FileFilter
  10. Charles + Android 抓取Https数据包 (适用于Android 6.0及以下)