「java集合运算」java算法常用集合

博主:adminadmin 2022-12-18 03:27:07 63

今天给各位分享java集合运算的知识,其中也会对java算法常用集合进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

我需要一个用Java编写的程序:集合的并、交和差运算。不知道你能不能帮我,谢谢!!!

import java.util.LinkedHashSet;

import java.util.Set;

public class Muster {

// 定义并集存储对象

private SetCharacter unite = new LinkedHashSetCharacter();

// 定义交集存储对象

private SetCharacter intersection = new LinkedHashSetCharacter();

// 定义a-b差集存储对象

private SetCharacter differenceA2B = new LinkedHashSetCharacter();

// 定义b-a差集存储对象

private SetCharacter differenceB2A = new LinkedHashSetCharacter();

/**

* 计算每个集合

* @param muster1

* @param muster2

*/

public Muster(String muster1, String muster2) {

//把非26个英文字母全替换成空串

muster1 = muster1.replaceAll("[^a-zA-Z]", "");

muster2 = muster2.replaceAll("[^a-zA-Z]", "");

//循环第一个集合

for(Character temp : muster1.toCharArray()) {

//添加并集

unite.add(temp);

if(muster2.indexOf(temp) = 0) {

//如果集合2中存在当前元素,在交集中追加记录

intersection.add(temp);

} else {

//如果集合2中不存在当前元素,在第一个集合与第二个集合的差集添加记录

differenceA2B.add(temp);

}

}

//循环第二个集合

for(Character temp : muster2.toCharArray()) {

//添加并集

unite.add(temp);

if(muster1.indexOf(temp) = 0) {

//如果集合1中存在当前元素,在交集中追加记录

intersection.add(temp);

} else {

//如果集合1中不存在当前元素,在第二个集合与第一个集合的差集添加记录

differenceB2A.add(temp);

}

}

}

/**

* 测试

* @param args

*/

public static void main(String[] args) {

//创建实例,并且给出2个结果集

Muster muster = new Muster("magazine", "paper");

//输出并集

System.out.println("unite\t" + muster.getUnite());

//输出交集

System.out.println("intersection\t" + muster.getIntersection());

//第一个集合与第二个集合的差集

System.out.println("differenceA2B\t" + muster.getDifferenceA2B());

//输出第二个集合与第一个集合的差集

System.out.println("differenceB2A\t" + muster.getDifferenceB2A());

System.out.println("--------------------------------------------------------------------------------");

//第二个例子

muster = new Muster("012oper4a6tion89", "error data");

//输出并集

System.out.println("unite\t" + muster.getUnite());

//输出交集

System.out.println("intersection\t" + muster.getIntersection());

//第一个集合与第二个集合的差集

System.out.println("differenceA2B\t" + muster.getDifferenceA2B());

//输出第二个集合与第一个集合的差集

System.out.println("differenceB2A\t" + muster.getDifferenceB2A());

}

public String getUnite() {

return getStringBySet(unite);

}

public String getIntersection() {

return getStringBySet(intersection);

}

public String getDifferenceA2B() {

return getStringBySet(differenceA2B);

}

public String getDifferenceB2A() {

return getStringBySet(differenceB2A);

}

private String getStringBySet(SetCharacter set) {

StringBuffer result = new StringBuffer();

for(Character c : set) {

result.append(c);

}

return result.toString();

}

}

打印结果:

unite magzinepr

intersection ae

differenceA2B mgzin

differenceB2A pr

--------------------------------------------------------------------------------

unite operatind

intersection oerat

differenceA2B pin

differenceB2A d

注:Set集合是去除重复记录的,所以不怕加的多,反正存不进去。LinkedHashSet实例是保证顺序不变,这样执行多少遍结果一样,看着舒服。

用java编写程序,集合元素为小写字母,实现集合的交,并,补,差运算

public static void main(String[] args) {

SetCharacter result = new HashSetCharacter();

SetCharacter set1 = new HashSetCharacter() {

{

add('a');

add('b');

add('c');

add('d');

add('e');

}

};

SetCharacter set2 = new HashSetCharacter() {

{

add('a');

add('b');

add('c');

}

};

result.clear();

result.addAll(set1);

result.retainAll(set2);

System.out.println("交集:" + result);

result.clear();

result.addAll(set1);

result.removeAll(set2);

System.out.println("差集:" + result);

result.clear();

result.addAll(set1);

result.addAll(set2);

System.out.println("并集:" + result);

result.clear();

result.addAll(set1);

if(result.containsAll(set2)){

result.removeAll(set2);

System.out.println("补集:"+result);

}else{

System.out.println("无补集");

}

}

java集合框架是什么意思

java集合框架是为表示和操作集合而规定的一种统一的标准的体系结构,任何集合框架都包含三大块内容,分别是对外的接口、接口的实现和对集合运算的算法。

用一个参数的JAVA程序实现集合的交并差运算

import java.util.HashSet;

import java.util.Iterator;

public class Testcase {

int x1[], x2[];

Testcase(int a[], int b[]) {

x1=a;

x2=b;

}

Testcase(Testcase d) {

x1=d.x1;

x2=d.x2;

}

public void Jiaoji(Testcase a) {

for(int i=0; i a.x1.length; i++){

for(int j=0; j a.x2.length; j++){

if(a.x1[i] == a.x2[j])

System.out.print(a.x1[i] + ",");

}

}

}

public static void main(String[] args) {

int x1[]= {

1, 4, 6, 9, 12, 18, 19, 45

};

int x2[]= {

4, 7, 9, 13, 19, 23, 29, 67

};

Testcase b=new Testcase(x1, x2);

b.Jiaoji(b);

System.out.println("并集是;");

int union[]=union(x1, x2);

for(int i:union){

System.out.print(i+" ");

}

System.out.print("\n差集是: ");

int diff[]=difference(x1, x2);

for(int i:diff){

System.out.print(i+" ");

}

}

//并集

static public int[] union(int a[], int b[]) {

HashSetInteger set=new HashSetInteger();

for(int i:a){

set.add(new Integer(i));

}

for(int i:b){

set.add(new Integer(i));

}

int size=set.size();

int out[]=new int[size];

IteratorInteger iter=set.iterator();

for(int i=0;isize;i++){

//

//while(i.hasNext()){

out[i]=((Integer)iter.next()).intValue();

}

return out;

}

//差集

static public int[] difference(int a[], int b[]) {

HashSetInteger set=new HashSetInteger();

for(int i:a){

set.add(new Integer(i));

}

for(int i:b){

set.remove(new Integer(i));

}

int size=set.size();

int out[]=new int[size];

IteratorInteger iter=set.iterator();

for(int i=0;isize;i++){

out[i]=((Integer)iter.next()).intValue();

}

return out;

}

}

========

输出

4,9,19,并集是;

1 4 6 7 67 9 12 13 45 19 18 23 29

差集是: 1 18 6 12 45

==================

顺便练了下集合

简述泛型集合框架相比于数组有什么好处?

好处有:1、编译时的强类型检查;2、消除显示的类型强制转换;3、更好的代码复用性,比如实现泛型算法。

Java,是由Sun公司于1995年推出的编程语言。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。

从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Java applet。Java集合框架(Java Collections Framework,JCF)是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。

java集合运算的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java算法常用集合、java集合运算的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-18,除非注明,否则均为首码项目网原创文章,转载请注明出处。