集合

1、介绍

Java 数组几个特点

  • 连续的
  • 大小固定
  • 数据类型完全一致 (如果是小的数据类型,可自动转换为大的数据类型)
  • 数组是储存在堆上的对象,可以保存多个同类型变量

2、案例

2.1、定义数组

  1. public class Test2 {
  2. public static void main(String[] args) {
  3. //静态初始化
  4. int[] arr = new int[10];
  5. arr[0] = 100;
  6. arr[1] = 200;
  7. arr[2] = '啊'; //小的类型,自动转换为大的
  8. int arr_length = arr.length; //数组长度,10
  9. int arr_key3 = arr[2];
  10. System.out.println(arr_key3);
  11. //静态初始化
  12. int[] arr_two = {1,2,3,4,5,6,7};
  13. System.out.println(arr_two.length);
  14. }
  15. }

2.2、 MAP

  1. import java.util.Map;
  2. import java.util.HashMap;
  3. public class Test2 {
  4. public static void main(String[] args) {
  5. //1、定义 MAP
  6. Map<String, String> map_1 = new HashMap<String, String>();
  7. map_1.put("a", "第四条新闻");
  8. map_1.put("b", "第五条新闻");
  9. map_1.get("a");
  10. //循环
  11. for(Map.Entry<String, String> entry :map_1.entrySet()) {
  12. System.out.println(entry.getKey());
  13. System.out.println(entry.getValue());
  14. }
  15. // 初始化
  16. Map<String, String> map = new HashMap<String, String>() {
  17. {
  18. put("Name", "June");
  19. put("QQ", "4889983");
  20. }
  21. };
  22. //2、定义指定类型的,泛型 MAP
  23. Map<Integer,String> map_2 = new HashMap<Integer,String>();
  24. map_2.put(1,"a");
  25. map_2.put(2,"b");
  26. //3、定义指定的自定义对象 Map
  27. Map<Integer,NewsEntity> map_2 = new HashMap<Integer,NewsEntity>();
  28. map_2.put(1,new NewsEntity(1,"标题1"));
  29. map_2.put(2,new NewsEntity(2,"标题2"));
  30. map_2.get(1).getNewsname();
  31. //循环
  32. for(Map.Entry<Integer,NewsEntity> entry : map_2.entrySet()) {
  33. System.out.println(entry.getKey());
  34. System.out.println(entry.getValue().getNewsname());//打印出对象中的值
  35. }
  36. // 自定义 Object 的 Map
  37. Map<String,Object> map_3 = new HashMap<String, Object>();
  38. for(Map.Entry<String, Object> entry : map_3.entrySet()) {
  39. resultMap.put(entry.getKey(), entry.getValue());
  40. }
  41. //4、LinkedHashMap
  42. Map<Integer,String> map_list = new LinkedHashMap<Integer,String>();
  43. map_list.put(1, "星期一");
  44. map_list.put(2, "星期二");
  45. map_list.put(3, "星期三");
  46. map_list.put(4, "星期四");
  47. map_list.put(5, "星期五");
  48. map_list.put(6, "星期六");
  49. map_list.put(7, "星期日");
  50. //循环 LinkedHashMap
  51. for(Map.Entry<Integer, String> entry: map_list.entrySet()) {
  52. System.out.print(entry.getKey() + ":" + entry.getValue() + "\t");
  53. }
  54. // 5. 循环嵌套
  55. Map<String, Map<String,String>> mapDemo = new HashMap<String, Map<String,String>>();
  56. // 方法 1
  57. Iterator<Map.Entry<String, Map<String, String>>> mapDemoEntries = mapDemo.entrySet().iterator();
  58. while (actionNeedsEntries.hasNext()) {
  59. Map.Entry<String, Map<String, String>> entry = mapDemo.next();
  60. System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
  61. }
  62. // 方法 2
  63. for(Map.Entry<String, Map<String, String>> curMap : mapDemo.entrySet()) {
  64. String key = curMap.getKey();
  65. Map<String, String> curMapInfo = curMap.getValue();
  66. System.out.println("Key = " + key + ", Value = " + curMapInfo);
  67. }
  68. }
  69. }

2.3 、 List

  1. import java.util.Map;
  2. import java.util.HashMap;
  3. import java.util.List;
  4. import java.util.ArrayList;
  5. import java.util.Arrays;
  6. public class Test3 {
  7. public static void main(String[] args) {
  8. //定义 List
  9. List list_1 = new ArrayList();
  10. list_1.add(1);
  11. list_1.add("a");
  12. list_1.get(0);
  13. //定义明确类型的泛型 List
  14. List<String> list_2 = new ArrayList<String>();
  15. list_2.add("a");
  16. list_2.add("b");
  17. list_2.get(0);
  18. //定义自定义对象的 List
  19. List<NewsEntity> list_3 = new ArrayList<NewsEntity>();
  20. list_3.add(new NewsEntity(1,"标题1"));
  21. list_3.add(new NewsEntity(2,"标题2"));
  22. list_3.get(0).getNewsname();//获取对应下标的对象方法
  23. // list 放入 map
  24. List<Map<String, String>> listResult = new ArrayList<Map<String, String>>();
  25. Map<String, String> mapRowData = new HashMap<String, String>();
  26. // 初始化 list 的值
  27. List<String> listFields = Arrays.asList("id","name");
  28. // 遍历 List
  29. for (int i =0; i <= listResult.size()-1; i ++) {
  30. String col = rs.get(i);
  31. System.out.println(col);
  32. }
  33. // 第二种方式
  34. for( Map<String, String> curMap :listResult){
  35. // 当前推荐出来的房源 ID
  36. String value = curMap.get("key");
  37. }
  38. // Ids
  39. List ids = new ArrayList<String>();
  40. ids.add("1");
  41. ids.add("2");
  42. ids.add("3");
  43. // 组合成字符串 commons-lang.jar org.apache.commons.lang.StringUtils
  44. StringUtils.join(ids,",");
  45. // 字符串转 list
  46. String ids = "2;3";
  47. String[] idsArr =new String[]{};
  48. idsArr = str.split(",");
  49. List list = java.util.Arrays.asList(idsArr);
  50. // 简写
  51. List<String> strTolist = Arrays.asList("2;3".split(";"));
  52. // list 转 array
  53. String[] listToArr = (String[]) list.toArray(new String[list.size]);
  54. }
  55. }

2.3 自定义对象数组

  1. public class Test4 {
  2. public static void main (String[] args) {
  3. MyClass[] myClass = new MyClass[10];
  4. myClass[0] = new MyClass();
  5. myClass[0].setName("abc");
  6. System.out.println(myClass[0].getName());
  7. }
  8. }

2.4 排序

  1. import java.util.Collections;
  2. import java.util.Comparator;
  3. import java.util.Map.Entry;
  4. // 一、对 Map<String, Map<String,String>> 进行排序
  5. Map<String, Map<String,String>> map = new HashMap<String, Map<String,String>>();
  6. // 转换成 list
  7. List<Map.Entry<String, Map<String, String>>> sortMapList = new ArrayList<Map.Entry<String, Map<String, String>>>(map.entrySet());
  8. // 排序
  9. Collections.sort(sortMapList,new Comparator<Map.Entry<String, Map<String, String>>> (){
  10. @Override
  11. public int compare(Entry<String, Map<String, String>> o1, Entry<String, Map<String, String>> o2) {
  12. // 升序
  13. return Integer.parseInt(o2.getValue().get("key")) - Integer.parseInt(o1.getValue().get("key"));
  14. // 降序
  15. return Integer.parseInt(o2.getValue().get("key")) - Integer.parseInt(o1.getValue().get("key"));
  16. }
  17. });
  18. // 二、对 List<Map<String,String>> 排序
  19. List<Map<String, String>> listMap = new ArrayList<Map<String, String>>();
  20. // 排序
  21. Collections.sort(listMap,new Comparator<Map<String, String>> (){
  22. @Override
  23. public int compare(Map<String, String> o1, Map<String, String> o2) {
  24. // 升序
  25. return Integer.parseInt(o1.get("xxx")) - Integer.parseInt(o2.get("xxx"));
  26. // 降序
  27. return Integer.parseInt(o2.get("xxx")) - Integer.parseInt(o1.get("xxx"));
  28. }
  29. });