java 16-1 ArrayList的练习1

  需求:

    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 }

 

posted @ 2016-09-22 22:45  卡拉瓦  阅读(257)  评论(0编辑  收藏  举报