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

来源:互联网 发布:最新网络潮语 编辑:程序博客网 时间:2024/04/25 11:53

去除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