生命不止,奋斗不息;
一个JAVA初学者的自勉;
今天写一个对于胡牌规则的判定,遇到一个问题发现两个list的比较无论怎么样都无法成功,之后发现两个list里面必须类型一致
public class MyTest { public boolean Test(String string) { List list1 = new ArrayList(); List list2 = new ArrayList(); Map map = new HashMap(); char[] chars=string.toCharArray(); for (int i=0;i<chars.length;i++){ list1.add(chars[i]-'0'); } list2.add(1);list2.add(2);list2.add(3); Collections.sort(list1); map.put("list1",list1); List list3= (List) map.get("list1"); System.out.println(list3); System.out.println(list2); if (list3.containsAll(list2)){ return true; } return false; } public static void main(String[] args) { Boolean flag=new MyTest().Test("123142132"); System.out.println(flag); } }最开始把chars强转为int,发现输出false,以为containsAll的用法错了,又换了indexOf>=0,发现还是错误,在这里纠结了半天,以为map中list字段不能这样使用,最后才发现转换错误,把ASCII转换为int就行了,最简单的-'0'即可;