标签:hj setA setB setC System 三三 println 对决 out
import java.util.*; /** * @author hj * @version 1.0 * @Description: 两个球队比赛, 龙队 a,b,c三人,虎队 x,y,z三人,a不和x比 ,c不和x,z比,找出并打印三对选手的对决 */ class HjBallGame { public static void main(String[] args) { System.out.println("-----------------"); threeFor(); System.out.println("-----------------"); threeForOptimizing(); System.out.println("-----------------"); setContainer(); } /** * 直接法.三重循环,简单明了一路判断 */ private static void threeFor() { final char x = 'x'; final char z = 'z'; for (char a = x; a <= z; a++) { for (char b = x; b <= z; b++) { for (char c = x; c <= z; c++) { if (a != x && c != x && c != z && a != b && a != c && b != c) { System.out.println("a---" + a); System.out.println("b---" + b); System.out.println("c---" + c); } } } } } /** * 直接法.三重循环,稍微优化 */ private static void threeForOptimizing() { final char x = 'x'; final char z = 'z'; for (char a = x; a <= z; a++) { for (char b = x; b <= z; b++) { if (a != b) { for (char c = x; c <= z; c++) { if (c != a && c != b && c != x && c != z && a != x) { System.out.println("a----PK----" + a); System.out.println("b----PK----" + b); System.out.println("c----PK----" + c); } } } } } } /** * 集合容器法 */ private static void setContainer() { //龙 虎 队 char[] dragon = {'a', 'b', 'c'}; char[] tiger = {'x', 'y', 'z'}; Set<Character> setA = new HashSet<>(); Set<Character> setB = new HashSet<>(); Set<Character> setC = new HashSet<>(); for (char d : dragon) { for (char t : tiger) { switch (d) { case 'a': if (t != 'x') { setA.add(t); } break; case 'b': setB.add(t); break; case 'c': if (t != 'x' && t != 'z') { setC.add(t); } break; default: System.out.println("异常了"); break; } } } deWeight(setA, setB, setC); deWeight(setB, setC, setA); deWeight(setC, setA, setB); System.out.println("龙队 a --->>"+setA.iterator().next()); System.out.println("龙队 b --->>"+setB.iterator().next()); System.out.println("龙队 c --->>"+setC.iterator().next()); } /** * 去重 * * @param setA a的对手集 * @param setB b的对手集 * @param setC c的对手集 */ private static void deWeight(Set<Character> setA, Set<Character> setB, Set<Character> setC) { if (setA.size() == 1) { setB.removeAll(setA); setC.removeAll(setA); } if (setB.size() == 1) { setA.removeAll(setB); setC.removeAll(setB); } if (setC.size() == 1) { setA.removeAll(setC); setB.removeAll(setC); } } }
标签:hj,setA,setB,setC,System,三三,println,对决,out 来源: https://www.cnblogs.com/hua-jian/p/15484695.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。