Java基础:数组去重方法

矫情吗;* 2023-10-09 18:23 65阅读 0赞

1、利用Set的特性去重复

  1. Set set = new HasSet();
  2. for (int x=0 ; x<arr.length ; x++){
  3. set.add(arr[x]);
  4. }

最后set里面的值就是arr数组去重后的所有元素,但是set中数据是无序的,会打乱原本的顺序。


2、若想保留原本顺序就用有顺序,不重复特点的链表的哈希集合

  1. LinkedHasSet<Object> temp = new LinkedHasSet<>();
  2. for(int x=0;x<arr.lenth;x++){
  3. temp.add(arr[x]);
  4. }

最后temp中的结果就是保留原有顺序去除了重复的原数组数据


3、可创建一个list集合,然后遍历数组中的元素放一个集合中是否已存在集合中,用contains()方法判断该元素是否已存在

  1. List list = new ArrayList();
  2. for(int x=0;x<arr.length;x++){
  3. if(!list.contains(arr[x])){
  4. list.add(arr[x]);
  5. }
  6. }

4、用两层循环,使每个元素与其他元素比较,找出是否重复,同时设置一个标志记录是否重复,如果重复就不放入list中(纯逻辑做法,过于笨重,数据量很大时循环会非常吃力,运行时间会很长,属于笨方法,建议用于锻炼循环逻辑,不用于实际项目中。)

  1. int[] temp = {1,2,4,4,5,5,6,7,8};
  2. int[] Arr = new int[temp.length];
  3. int count=0;
  4. for(int x=0;x<temp.length;x++) {
  5. boolean isOne = true;
  6. for (int y=x+1;y<temp.length;y++){
  7. if (temp[x]==temp[y]){
  8. isOne=false;
  9. break;
  10. }
  11. }
  12. if(isOne){
  13. Arr[x]=temp[x];
  14. }
  15. System.out.println(Arr[x]);
  16. }

发表评论

表情:
评论列表 (有 0 条评论,65人围观)

还没有评论,来说两句吧...

相关阅读