需求:
ArrayList去除集合中字符串的重复值(去掉相同的字符串)
分析:
第一种做法:创建一个新的空集合:
A:创建1个具有相同字符串的集合
B:创建1个空的集合
C:遍历第一个集合里面的元素
D:把遍历的元素一个个放进去第二个集合中,但有条件
a:若第二个集合中没有这个元素,则添加进去
b:若有这个元素,则不添加
E:遍历第二个集合,输出
1 package cn_ArrayList; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 public class ArrayListTest1 { 6 7 public static void main(String[] args) { 8 //创建具有相同字符串的集合 9 ArrayList list1 = new ArrayList(); 10 //给这个集合添加元素,有重复值 11 list1.add("阿猫"); 12 list1.add("阿狗"); 13 list1.add("草草"); 14 list1.add("花花"); 15 list1.add("阿猫"); 16 list1.add("草草"); 17 list1.add("阿狗"); 18 list1.add("阿狗"); 19 20 //再创建一个空内容的集合 21 ArrayList list2 = new ArrayList(); 22 23 //遍历第一个集合 24 for(int x = 0 ; x < list1.size(); x++){ 25 String s = (String)list1.get(x); 26 27 //判断第二个集合中是否包含此刻遍历的这个元素 28 if(! list2.contains(s)){ 29 list2.add(s); 30 } 31 } 32 //遍历第二个集合 33 Iterator it = list2.iterator(); 34 while(it.hasNext()){ 35 String ss = (String)it.next(); 36 System.out.println(ss); 37 } 38 } 39 40 }
第二种方法:
需求:
ArrayList去除集合中字符串的重复值(去掉相同的字符串)
分析:
第二种方法:自身元素进行对比
A:创建一个含有重复元素的集合
B:利用选择排序法的思想进行查询
a:索引0的跟后面的对比
1:若有相同的,则删除后面的,此时注意,要对这个集合的元素减去1
2:若没有相同的,则保留
b:第一轮后,索引1再次重复a步骤
C:遍历集合,输出
1 package cn_ArrayList; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 public class ArrayListTest2 { 6 7 public static void main(String[] args) { 8 //创建一个含有重复元素的集合 9 ArrayList al = new ArrayList(); 10 11 //给集合添加元素,含有重复的 12 al.add("阿猫"); 13 al.add("阿狗"); 14 al.add("草草"); 15 al.add("花花"); 16 al.add("阿猫"); 17 al.add("草草"); 18 al.add("阿狗"); 19 al.add("阿狗"); 20 21 //选择排序法的思想进行查询: 22 for(int x = 0; x< al.size() - 1; x++ ){ //设置对比的索引 23 for(int y = x + 1; y < al.size(); y++){ //设置被对比的索引 24 if(al.get(x).equals(al.get(y))){ //对比集合上x和y索引上的值 25 al.remove(y); //删除这个相同的元素 26 y -- ; //每有一个相同的元素,要进行对比的元素就减少1个 27 } 28 } 29 } 30 //对完成后的集合进行遍历 31 //方法1:迭代器 32 Iterator it = al.iterator(); 33 while(it.hasNext()){ 34 String s = (String)it.next(); 35 System.out.println(s); 36 } 37 System.out.println("-----------"); 38 39 //方法2:for循环 40 for(int z = 0; z < al.size(); z ++){ 41 String ss = (String)al.get(z); 42 System.out.println(ss); 43 } 44 } 45 }