`
busing
  • 浏览: 41372 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

清楚两个集合里面相同的元素

阅读更多
 
  1 /*
  2  * To change this template, choose Tools | Templates
  3  * and open the template in the editor.
  4  */
  5 
  6 package removesame;
  7 
  8 import java.util.ArrayList;
  9 import java.util.List;
 10 
 11 /**
 12  *
 13  * @author root
 14  */
 15 public class Main {
 16 
 17     /**
 18      * 此方法测试   同一集合中不能再存在重复的元素  否则无法刪除   可以先把每个集合中重复的元素先删除
 19      */
 20     public static void main(String[] args) {
 21         // TODO code application logic here
 22 
 23         //存放aStr和bStr集合重复元素的index
 24         List<Integer> aDelIndex=new ArrayList<Integer>();
 25         List<Integer> bDelIndex=new ArrayList<Integer>();
 26 
 27 
 28         List<String> aStr=new ArrayList<String>();
 29         List<String> bStr=new ArrayList<String>();
 30 
 31         aStr.add("d");aStr.add("a");aStr.add("c");//aStr.add("d");
 32 
 33         bStr.add("a");bStr.add("b");bStr.add("c");
 34 
 35         String a="";
 36         String b="";
 37 
 38 
 39         //循环遍历两个几何的所有元素
 40         for(int i=0;i<aStr.size();i++)
 41         {
 42             a=aStr.get(i);
 43 
 44             int j=0;
 45             for(;j<bStr.size();j++)
 46             {
 47                 b=bStr.get(j);
 48 
 49                 if(a.equals(b))
 50                 {
 51                     
 52                    System.out.println("刪除索引:i="+i+"\tj="+j);
 53                    //如果两个值相同,则把他们的index  放进记录重复下标的几何(aDelIndex,bDelIndex)
 54                     aDelIndex.add(i);
 55                     bDelIndex.add(j);
 56 
 57                     //不需要再比较了,退出本次比较
 58                     break;
 59                     
 60                 }
 61             }
 62              
 63         }
 64 
 65 
 66 
 67 
 68 
 69         /*
 70          *将记录删除索引的集合里面的值   进行冒泡排序,从小到达排列,否则刪出有可能出错
 71          */
 72         int temp;
 73         for(int i=0;i<aDelIndex.size();i++)
 74         {
 75             for(int j=0;j<aDelIndex.size()-i-1;j++)
 76             {
 77                 if(aDelIndex.get(j)>aDelIndex.get(j+1))
 78                 {
 79                     temp=aDelIndex.get(j);
 80                     aDelIndex.set(j, aDelIndex.get(j+1));
 81                     aDelIndex.set(j+1,temp);
 82                 }
 83             }
 84         }
 85 
 86 
 87         for(int num:aDelIndex)
 88         {
 89             System.out.print(num+"\t");
 90         }
 91 
 92         System.out.println();
 93         
 94         for(int i=0;i<bDelIndex.size();i++)
 95         {
 96             for(int j=0;j<bDelIndex.size()-i-1;j++)
 97             {
 98                 if(bDelIndex.get(j)>bDelIndex.get(j+1))
 99                 {
100                     temp=bDelIndex.get(j);
101                     bDelIndex.set(j, bDelIndex.get(j+1));
102                     bDelIndex.set(j+1,temp);
103                 }
104             }
105         }
106          for(int num:bDelIndex)
107         {
108             System.out.print(num+"\t");
109         }
110 
111 
112 
113 
114 
115          int k=1;
116         
117         boolean f=false;
118 
119         //删除aStr中重复的元素
120 
121         //第一次刪出后,因为几何的索引会全部提前一个,所以都要刪出aStr.remove(i-1)
122         for(int i:aDelIndex)
123         {
124             if(f)
125             {
126                 aStr.remove(i-k);
127                 k++;//第一次减一  第一次减二  ……
128             }
129             else
130             {
131                 aStr.remove(i);
132                 f=true;
133             }
134         }
135 
136 
137         
138         f=false;
139 
140         //重置 k
141         k=1;
142         //刪出bStr中重复的元素
143         for(int j:bDelIndex)
144         {
145             System.out.println("j:"+j);
146             if(f)
147             {
148                 bStr.remove(j-k);
149                 k++;
150             }
151             else
152             {
153                 bStr.remove(j);
154                 f=true;
155             }
156         }
157 
158 
159 
160 
161         //打印
162         System.out.println("----------------------------------------------");
163         System.out.print("aStr:");
164         for (String s:aStr) {
165             System.out.print(s+"\t");
166         }
167 
168         System.out.println();
169         System.out.println("----------------------------------------------");
170         System.out.print("bStr:");
171         for (String s:bStr) {
172             System.out.print(s+"\t");
173         }
174         System.out.println();
175 
176 
177     }
178 
179 }


感觉做的很烦,不知道有没有更好的解决办法
分享到:
评论

相关推荐

    集合与函数讲义整理.pdf

    交集表示两个集合共有的元素集合,用符号"A∩B"表示;并集表示两个集合所有元素的集合,用"A∪B"表示;补集是集合与其全集除去相同元素后的剩余部分,用"uC A"表示。此外,还有集合的运算性质,例如交集的幂等性、...

    广东省各地高考数学月考联考模拟最新分类汇编1 集合 理 试题.doc

    例如,求解集合的交集、并集或补集时,需要清楚哪些元素同时存在于两个集合中,哪些只存在于其中一个,以及哪些不在任何一个集合中。通过练习这些题目,学生可以加深对集合理论的理解,提高在实际问题中的应用能力。

    高考总复习-集合与函数概念知识点及习题..doc

    集合间的关系包括包含关系(一个集合的所有元素都在另一个集合内,记作A⊆B或B⊇A)和相等关系(两个集合包含相同的元素,记作A=B)。空集∅是任何集合的子集,也是非空集合的真子集。此外,集合的运算主要包括交集...

    人教版高中数学必修一《集合与函数概念》之《集合》基础知识综述及即时练习-5页.pdf

    集合有两个关键性质——确定性和互异性。确定性意味着集合内的元素是明确的,不存在模糊不清的情况;互异性则指集合中的元素都是独一无二的。 2. **集合与元素的关系**:元素与集合之间的关系可以用“属于”或“不...

    2018高中数学每日一题之快乐暑假第06天元素与集合的概念及其关系含解析新人教A版

    比如,集合{1, 2, 3}与{3, 1, 2}代表的是同一个集合,尽管元素的顺序不同。 在题目中,我们看到了几个例子来检验对象是否构成集合。例如,选项①是可以构成集合的,因为满足确定性和互异性,所有距离原点O为1的点...

    1.1.3集合的并集和交集.pdf

    通过观察和思考,学生会发现集合的并集运算类似于实数的加法运算,而交集则类似于实数的乘法,因为交集只包含两个集合共有的部分。在实际应用中,比如在平面几何或数据分析中,这些概念极其重要。 教学重点是理解和...

    C++标准库:std_set作为一个有序集合

    4. 交换集合:使用std::swap函数可以交换两个集合的内容,例如`std::swap(set, other)`。 5. 清楚集合:使用clear函数可以清楚集合中的所有元素,例如`other.clear()`。 std::set的优点是: * 自动排序:std::set...

    高教版中职教材—数学基础模块上册电子教案.doc

    - **并集**:两个集合的所有元素组合在一起形成的集合。 - **交集**:两个集合共有的元素组成的集合。 - **差集**:从一个集合中去掉另一个集合的元素后剩下的元素组成的集合。 7. **教学目标与重点** 教学目标...

    高中数学知识点解析:集合与函数概念.docx

    函数是两个集合之间的一种规则,它将一个集合的每个元素唯一映射到另一个集合的元素。理解集合及其运算是理解函数、解析几何、代数以及更高级数学概念的基础。 集合的性质,如确定性、独立性和互异性,确保了集合...

    函数的概念与运算.doc

    函数是数学中至关重要的概念,它是描述两个集合之间特定关系的工具,通过函数,我们可以理解变量间的依赖关系。在描述函数的概念时,我们首先要明确的是集合的基本概念。集合是由一定范围内的确定对象构成的整体,...

    JavaSE-数组集合和链表集合 数组和链表.docx

    ### JavaSE中的数组集合与链表...通过上述分析,我们可以清楚地看到链表集合相较于数组集合的优势所在,特别是在频繁插入和删除操作的场景中。链表集合提供了一种更为灵活的数据管理方式,能够有效提高程序的运行效率。

    集合的含义及表示.doc

    根据集合的定义,我们可以知道,网中的“大鱼”如果能够明确定义清楚哪些鱼属于“大鱼”的范围,那么它们是可以构成一个集合的。但是需要注意的是,这里的“大鱼”必须有一个清晰明确的标准,例如体重超过一定数值的...

    数学广角——集合.ppt

    例如,黄明、李玉的父亲构成一个集合,这个集合中的元素是黄伟光和李文华,不允许有重复。 接着,课件通过情境引入,展示了一组学生及其参与的活动——跳绳和踢毽。这些情境帮助学生理解集合的并集和交集。跳绳的...

    高一数学集合的含义与表示PPT课件.pptx

    例如,集合{1, 2, 3}与{3, 2, 1}虽然元素相同,但排列顺序并不影响它们作为同一个集合的事实,这体现了集合的无序性。 在实际应用中,我们经常使用特定的符号来表示常见的数集,例如: - N代表自然数集(包含0的...

    离散数学第一章

    - **交集**(∩):两个集合的交集是由同时属于这两个集合的所有元素组成的集合。 - **补集**(′):对于一个集合来说,它的补集是指不属于该集合的所有元素的集合。 ### 示例分析 假设集合A={1, 2, 3},集合B={2...

    集合单元测试题(含答案)..docx

    - 一个集合的子集是指包含在原集合中的所有元素的集合,例如集合`{1, 2, 3}`的子集有`{}`, `{1}`, `{2}`, `{3}`, `{1, 2}`, `{1, 3}`, `{2, 3}`和`{1, 2, 3}`,总共8个。 3. 集合的交集与并集操作: - 交集`A ∩ ...

    高一数学高一数学集合表示PPT学习教案.pptx

    4. 集合的等价性:理解集合的相等性至关重要,两个集合相等当且仅当它们包含相同的元素,例如,集合{1,2}与集合{(1,1),(2,2)}不相等,因为后者是有序对的集合,而前者是单个数字的集合。 5. 变式理解:在实际...

    部编版第33讲 包含与排除(容斥原理).doc

    3. 集合的并集与交集:集合的并集表示两个集合的所有元素的组合,而交集表示同时属于两个集合的元素。 4. 解决问题策略:在处理包含与排除的问题时,首先明确各个集合的元素,然后利用图形或图表辅助理解题意,理...

    【考前三个月】(江苏专用)2015高考数学 高考必会题型 专题1 集合与常用逻辑用语 第1练 小集合,大功能

    这种题型主要考察对集合中元素的理解和操作,例如例1中,通过分析集合A的元素和集合B的定义,确定B中的元素个数。解答这类问题的关键是明确集合的代表元素,即理解集合中元素的性质和构成规则。 第二种题型涉及函数...

    高考数学一轮复习集合的概念和运算文PPT学习教案.pptx

    - 通过具体的例题解析,我们可以看到如何应用这些概念和性质来解决问题,例如求两个集合的并集、交集或补集,以及判断集合间的关系。 通过这样的复习,学生将能够熟练掌握集合的基本概念,理解和应用集合的运算,...

Global site tag (gtag.js) - Google Analytics