程序员==java基础==集合2

去除ArrayList中重复字符串元素方式

package  com.heima.genreic;

 

import java.util.ArrayList;

import  java.util.Iterator;

 

/

创建ArrayList 集合,增加泛型  

 1. 给集合中添加字符串, 并去除重复

 2. 给集合添加Person 对象, 并去除重复

 3.ArrayList存储字符串并遍历泛型版

 4.ArrayList 存储定义对象Student   并遍历

/

public  class Z1 {

 

    public static void main(String[] args) {

       ArrayList<String> arrlist = new  ArrayList<String>();

       ArrayList<String> newarrlist =  new ArrayList<String>();

       arrlist.add("abcder");

       arrlist.add("123456");

       arrlist.add("abcder");

       arrlist.add("a");

       //System.out.println(arrlist);

       deme1(arrlist, newarrlist);

       System.out.println(newarrlist);

       //deno2(newarrlist);

           

    }

 

/   private static void  deno2(ArrayList<String> newarrlist) {

       Iterator<String>  it1=newarrlist.iterator();

       while (it1.hasNext()) {

           String str1 = (String) it1.next();

           System.out.println(str1);

       }

    }/

 

    private static void  deme1(ArrayList<String> arrlist,ArrayList<String> newarrlist) {

       Iterator<String> it=  arrlist.iterator();

       while (it.hasNext()) {

           String st =  it.next();

//         System.out.println(st+"st是什么怪");

           if (!newarrlist.contains(st)) {

              newarrlist.add(st);

           }

//         System.out.println(st);

       }

    }

 

}


 

 

 

 

去除ArrayList中重复自定义对象元素

首先要有自定义的类,相当于Javabean

  要重新equal方法

 

package com.heima.genreic;

 

import java.util.ArrayList;

import java.util.Iterator;

 

import org.ietf.jgss.Oid;

 

/

2. 给集合添加Person 对象, 并去除重复

 

/

public class Z2 {

 

    public static void  main(String[] args) {

       ArrayList<person>  oldlist =new ArrayList<person>();

       ArrayList<person>  newist =new ArrayList<person>();

        oldlist.add(new person("张三",7));

       oldlist.add(new  person("张三",7));

       oldlist.add(new  person("李四",17));

       oldlist.add(new  person("李四",18));

       oldlist.add(new  person("李四",17));

       

       Iterator<person>  it = oldlist.iterator();

       //在调用之前要重写peron的toString方法。

       while  (it.hasNext()) {

           person p  =  it.next();

           if  (!newist.contains(p)) {

              newist.add(p);

              

           }

           

       }

       System.out.println(newist);

    }

 

}

class person{

    private String name;

    private int age;

    public person() {

       super();

       

    }

    public person(String  name, int age) {

       super();

       this.name = name;

       this.age = age;

    }

    public String  getName() {

       return name;

    }

    public void  setName(String name) {

       this.name = name;

    }

    public int getAge() {

       return age;

    }

    public void setAge(int  age) {

       this.age = age;

    }

    

    @Override

    public String  toString() {

       return  "person [name=" + name + ", age=" + age + "]";

    }

    @Override

    public boolean  equals(Object obj) {

       if (this == obj)

           return true;

       if (obj == null)

           return false;

       if (getClass() !=  obj.getClass())

           return false;

       person other =  (person) obj;

       if (age !=  other.age)

           return false;

       if (name == null)  {

           if (other.name  != null)

              return  false;

       } else if  (!name.equals(other.name))

           return false;

       return true;

    }

    }


 

 

三种迭代的能否删除

普通for循环,可以删除,但是索引要

String[]  ss = list.toArray(new String[list.size()]);//集合

for (inti = 0; i < arr.length; i++) {//遍历数组并交换

           if (i == a) {

              temp = arr[i];

              arr[i] = arr[b];

              arr[b] = temp;

 

           }


 

 

迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常

 

/

Iterator <String>  it=list.iterator();

    while  (it.hasNext()) {

       String  st = it.next();

       System.out.println(st);

       

    }/


 

变形迭代

for (Iterator iterator =  oldlist.iterator(); iterator.hasNext();) {//迭代循环并获取

           Person  per = (Person) iterator.next();

           if  (p.getAge()<per.getAge()) {//判断是否相等

            p=per;

           }


 

 

 

增强for循环不能删除

增强for概述

       简化数组和Collection集合的遍历,输入fore,之后alt+/提示后自动补全

B:格式:

 

              for(元素数据类型变量 :数组或者Collection集合) {

                     使用变量即可,该变量就是元素

              }

作用

用于数组和集合的遍历

 

for (String st : list1) {//z增强for循环遍历

        System.out.println(st);

     }


 

 

总结

 普通for循环,可以删除,但是索引要--

 迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常

 增强for循环不能删除

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值