13Collections工具類
A:Collections工具類
/*
* 集合操作的工具類
* Collections
/
public class CollectionsDemo {
public static void main(String[] args) {
function_2();
}
/
* Collections.shuffle方法
* 對List集合中的元素,進行隨機排列
*/
public static void function_2(){
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(5);
list.add(9);
list.add(11);
list.add(8);
list.add(10);
list.add(15);
list.add(20);
System.out.println(list);
//調(diào)用工具類方法shuffle對集合隨機排列
Collections.shuffle(list);
System.out.println(list);
}
/*
* Collections.binarySearch靜態(tài)方法
* 對List集合進行二分搜索,方法參數(shù),傳遞List集合,傳遞被查找的元素
*/
public static void function_1(){
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(5);
list.add(8);
list.add(10);
list.add(15);
list.add(20);
//調(diào)用工具類靜態(tài)方法binarySearch
int index = Collections.binarySearch(list, 16);
System.out.println(index);
}
/*
* Collections.sort靜態(tài)方法
* 對于List集合,進行升序排列
*/
public static void function(){
//創(chuàng)建List集合
List<String> list = new ArrayList<String>();
list.add("ewrew");
list.add("qwesd");
list.add("Qwesd");
list.add("bv");
list.add("wer");
System.out.println(list);
//調(diào)用集合工具類的方法sort
Collections.sort(list);
System.out.println(list);
}
}
14集合的嵌套
A:集合的嵌套
/*
* Map集合的嵌套,Map中存儲的還是Map集合
* 要求:
* 傳智播客
* Java基礎(chǔ)班
* 001 張三
* 002 李四
*
* Java就業(yè)班
* 001 王五
* 002 趙六
* 對以上數(shù)據(jù)進行對象的存儲
* 001 張三 鍵值對
* Java基礎(chǔ)班: 存儲學(xué)號和姓名的鍵值對
* Java就業(yè)班:
* 傳智播客: 存儲的是班級
*
* 基礎(chǔ)班Map <學(xué)號,姓名>
* 傳智播客Map <班級名字, 基礎(chǔ)班Map>
*/
public class MapMapDemo {
public static void main(String[] args) {
//定義基礎(chǔ)班集合
HashMap<String, String> javase = new HashMap<String, String>();
//定義就業(yè)班集合
HashMap<String, String> javaee = new HashMap<String, String>();
//向班級集合中,存儲學(xué)生信息
javase.put("001", "張三");
javase.put("002", "李四");
javaee.put("001", "王五");
javaee.put("002", "趙六");
//定義傳智播客集合容器,鍵是班級名字,值是兩個班級容器
HashMap<String, HashMap<String,String>> czbk =
new HashMap<String, HashMap<String,String>>();
czbk.put("基礎(chǔ)班", javase);
czbk.put("就業(yè)班", javaee);
keySet(czbk);
}
15集合的嵌套keySet遍歷
A:集合的嵌套keySet遍歷
/*
* Map集合的嵌套,Map中存儲的還是Map集合
* 要求:
* 傳智播客
* Java基礎(chǔ)班
* 001 張三
* 002 李四
*
* Java就業(yè)班
* 001 王五
* 002 趙六
* 對以上數(shù)據(jù)進行對象的存儲
* 001 張三 鍵值對
* Java基礎(chǔ)班: 存儲學(xué)號和姓名的鍵值對
* Java就業(yè)班:
* 傳智播客: 存儲的是班級
*
* 基礎(chǔ)班Map <學(xué)號,姓名>
* 傳智播客Map <班級名字, 基礎(chǔ)班Map>
*/
public class MapMapDemo {
public static void main(String[] args) {
//定義基礎(chǔ)班集合
HashMap<String, String> javase = new HashMap<String, String>();
//定義就業(yè)班集合
HashMap<String, String> javaee = new HashMap<String, String>();
//向班級集合中,存儲學(xué)生信息
javase.put("001", "張三");
javase.put("002", "李四");
javaee.put("001", "王五");
javaee.put("002", "趙六");
//定義傳智播客集合容器,鍵是班級名字,值是兩個班級容器
HashMap<String, HashMap<String,String>> czbk =
new HashMap<String, HashMap<String,String>>();
czbk.put("基礎(chǔ)班", javase);
czbk.put("就業(yè)班", javaee);
keySet(czbk);
}
public static void keySet(HashMap<String,HashMap<String,String>> czbk){
//調(diào)用czbk集合方法keySet將鍵存儲到Set集合
Set<String> classNameSet = czbk.keySet();
//迭代Set集合
Iterator<String> classNameIt = classNameSet.iterator();
while(classNameIt.hasNext()){
//classNameIt.next獲取出來的是Set集合元素,czbk集合的鍵
String classNameKey = classNameIt.next();
//czbk集合的方法get獲取值,值是一個HashMap集合
HashMap<String,String> classMap = czbk.get(classNameKey);
//調(diào)用classMap集合方法keySet,鍵存儲到Set集合
Set<String> studentNum = classMap.keySet();
Iterator<String> studentIt = studentNum.iterator();
while(studentIt.hasNext()){
//studentIt.next獲取出來的是classMap的鍵,學(xué)號
String numKey = studentIt.next();
//調(diào)用classMap集合中的get方法獲取值
String nameValue = classMap.get(numKey);
System.out.println(classNameKey+".."+numKey+".."+nameValue);
}
}
System.out.println("==================================");
for(String className: czbk.keySet()){
HashMap<String, String> hashMap = czbk.get(className);
for(String numKey : hashMap.keySet()){
String nameValue = hashMap.get(numKey);
System.out.println(className+".."+numKey+".."+nameValue);
}
}
}
}
16集合的嵌套entrySet遍歷
A:集合的嵌套entrySet遍歷
/*
* Map集合的嵌套,Map中存儲的還是Map集合
* 要求:
* 傳智播客
* Java基礎(chǔ)班
* 001 張三
* 002 李四
*
* Java就業(yè)班
* 001 王五
* 002 趙六
* 對以上數(shù)據(jù)進行對象的存儲
* 001 張三 鍵值對
* Java基礎(chǔ)班: 存儲學(xué)號和姓名的鍵值對
* Java就業(yè)班:
* 傳智播客: 存儲的是班級
*
* 基礎(chǔ)班Map <學(xué)號,姓名>
* 傳智播客Map <班級名字, 基礎(chǔ)班Map>
*/
public class MapMapDemo {
public static void main(String[] args) {
//定義基礎(chǔ)班集合
HashMap<String, String> javase = new HashMap<String, String>();
//定義就業(yè)班集合
HashMap<String, String> javaee = new HashMap<String, String>();
//向班級集合中,存儲學(xué)生信息
javase.put("001", "張三");
javase.put("002", "李四");
javaee.put("001", "王五");
javaee.put("002", "趙六");
//定義傳智播客集合容器,鍵是班級名字,值是兩個班級容器
HashMap<String, HashMap<String,String>> czbk =
new HashMap<String, HashMap<String,String>>();
czbk.put("基礎(chǔ)班", javase);
czbk.put("就業(yè)班", javaee);
entrySet(czbk);
}
public static void entrySet(HashMap<String,HashMap<String,String>> czbk){
//調(diào)用czbk集合方法entrySet方法,將czbk集合的鍵值對關(guān)系對象,存儲到Set集合
Set<Map.Entry<String, HashMap<String,String>>>
classNameSet = czbk.entrySet();
//迭代器迭代Set集合
Iterator<Map.Entry<String, HashMap<String,String>>> classNameIt = classNameSet.iterator();
while(classNameIt.hasNext()){
//classNameIt.next方法,取出的是czbk集合的鍵值對關(guān)系對象
Map.Entry<String, HashMap<String,String>> classNameEntry = classNameIt.next();
//classNameEntry方法 getKey,getValue
String classNameKey = classNameEntry.getKey();
//獲取值,值是一個Map集合
HashMap<String,String> classMap = classNameEntry.getValue();
//調(diào)用班級集合classMap方法entrySet,鍵值對關(guān)系對象存儲Set集合
Set<Map.Entry<String, String>> studentSet = classMap.entrySet();
//迭代Set集合
Iterator<Map.Entry<String, String>> studentIt = studentSet.iterator();
while(studentIt.hasNext()){
//studentIt方法next獲取出的是班級集合的鍵值對關(guān)系對象
Map.Entry<String, String> studentEntry = studentIt.next();
//studentEntry方法 getKey getValue
String numKey = studentEntry.getKey();
String nameValue = studentEntry.getValue();
System.out.println(classNameKey+".."+numKey+".."+nameValue);
}
}
System.out.println("==================================");
for (Map.Entry<String, HashMap<String, String>> me : czbk.entrySet()) {
String classNameKey = me.getKey();
HashMap<String, String> numNameMapValue = me.getValue();
for (Map.Entry<String, String> nameMapEntry : numNameMapValue.entrySet()) {
String numKey = nameMapEntry.getKey();
String nameValue = nameMapEntry.getValue();
System.out.println(classNameKey + ".." + numKey + ".." + nameValue);
}
}
}
}