「java集合运算」java算法常用集合
今天给各位分享java集合运算的知识,其中也会对java算法常用集合进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、我需要一个用Java编写的程序:集合的并、交和差运算。不知道你能不能帮我,谢谢!!!
- 2、用java编写程序,集合元素为小写字母,实现集合的交,并,补,差运算
- 3、java集合框架是什么意思
- 4、用一个参数的JAVA程序实现集合的交并差运算
- 5、简述泛型集合框架相比于数组有什么好处?
我需要一个用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集合运算的信息别忘了在本站进行查找喔。
发布于:2022-12-18,除非注明,否则均为
原创文章,转载请注明出处。