hashmap存取值的顺序不一致;与使用keySet遍历和entrySet().iterator()无关 public static void main(String[] args) { Map<String , String> hm = new HashMap<String , String>(); hm.put("1", "OOO"); hm.put("3", "OOO"); hm.put("2", "OOO"); hm.put("5", "OOO"); hm.put("4", "OOO"); // Set<String> set = hm.keySet(); // for(String s:set){ // System.out.println(s+":"+hm.get(s)); // } Iterator<Map.Entry<String, String>> iterator = hm.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry<String, String> next = iterator.next(); System.out.println(next.getKey()+":"+next.getValue()); } }
重复记录的遍历
public static void main(String[] args) { String s="xxxxyyyyyyzbbb";//aac int len=s.trim().length(); StringBuffer sb=new StringBuffer(); int cout=0; for(int i=0;i<len;){ cout=0; for(int j=i+1;j<len;j++){ if(s.charAt(i)==s.charAt(j)){ cout++; }else{ break; } } if(cout>0){ sb.append(cout); } sb.append(s.charAt(i)); i+=cout+1; } System.out.println(sb.toString()); }
优先级队列:pq = new PriorityQueue<Character>(length);
pq.offer(c);==remove()
pq.poll();==add()
Stack<Character> s = new Stack<Character>();
pop() push();
太难了:https://www.nowcoder.com/questionTerminal/fe6b651b66ae47d7acce78ffdd9a96c7?answerType=1&f=discussion
递归的思路是将自身的形参再次传入方法体,再次处理,
回溯的思路,有栈弹出和压缩意味,