您的位置:首页 > 其它

Map集合、List集合、Array数组基础知识整理

2018-03-20 09:20 956 查看

一、Map集合

HashMap与HashTable区别:

(1)HashMap是非线程安全的,HashTable是线程安全的,HashMap效率比HashTable的要高。

(2)HashMap的键和值都允许有null存在,而HashTable则都不行。
Map里面的常用方法:

 Map集合:该集合存储键(K)值(V)对,一对一往里存,而且要保证键的唯一性。 
    1、添加 
        put(K key,V value) 
        putAll(Map<? extends K,? extends V> m) 
    2、删除 
        clear() 
        remove(Object key) 
    3、判断 
        containsValue(Object value) 
        containsKey(Object key) 
        isEmpty() 
    4、获取 
        get(Object key) 
        size() 
        values() 

1、遍历集合
  Map<String, String> tempMap = new HashMap<String, String>();  
  tempMap.put("a","APPLE");  
  tempMap.put("b","BOOK");  
  tempMap.put("c","COOLER");

  Iterator<String> it=tempMap.keySet().iterator();
方式1  迭代遍历
while (it.hasNext()) {
Object key=it.next();
System.out.println(key+"  "+tempMap.get(key));

}
方式2  for循环遍历
for(String key : tempMap.keySet()){
System.out.println(tempMap.get(key));
}
结果如下




二、List集合

List和Set的比较:1、List,Set都是继承自Collection接口
2、Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。 它的值不能重复;
     List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。它的值可以重复;

3、List接口有三个实现类:LinkedList,ArrayList,Vector ,Set接口有两个
4000
实现类:HashSet(底层由HashMap实现),LinkedHashSet
List的一些属性与方法:

List<String> list=new ArrayList<String>();
//添加方法
list.add("第一个元素");
list.add("第二个元素");
list.add("第三个元素");
list.add("第四个元素");
//循环list集合  list长度方法size()
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));

         


             //删除方法
             System.out.println("===========================");
System.out.println("移除之后:");
list.remove("第二个元素");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}

            


             //判断集合中是否包含某个值
System.out.println("============================");
System.out.println("判断集合中的某个值是否存在:");
if(list.contains("第二个元素")){
System.out.println("包含‘第二个元素’");
}else {
System.out.println("不包含‘第二个元素’");
}
if(list.contains("第四个元素")){
System.out.println("包含‘第四个元素’");
}

        


            //判断集合是否为空                list.isEmpty()
            //l获取指定下标的元素值        ist.get(index)
         System.out.println("============================");
System.out.println("用set方法更新某个指定元素");
//用set方法更新某个指定元素   不可以用list.set(3, "***");这样会报异常,因为list长度只有2
list.set(0, "插入的元素");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
        


        //清空list集合
                 System.out.println("============================");
System.out.println("用set方法更新某个指定元素");
//用set方法更新某个指定元素
list.set(0, "插入的元素");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
        


三、数组

//以字符串数组为例  创建数组的几种方式
1、String[] str=new String[5];
2、String[] str=new String[]{"a","b"};

3、String[] str={"a","b"};
//数组的冒泡排序
//冒泡排序  外层循环N-1   内层循环N-1-i
int[] a = { -1, 20, 0,200, 9, 10, 90, -100 };
int b = 0;
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - 1-i; j++) {
if (a[j] > a[j + 1]) {
b = a[j];
a[j] = a[j + 1];
a[j + 1] = b;
}
}
System.out.print(" " + b);

}



//把一个数组复制到另一个数组
System.out.println("=================================");
System.out.println("以下是数组的复制");
//数组的复制
int[] firstArray={1,3,2,5,6,4};  
      
    //把firstArray复制给lastArray  
    int[] lastArray=Arrays.copyOf(firstArray, 6);  
    int[] lastArray2=new int[6];  
      
    for(int i=0;i<lastArray.length;i++){  
    lastArray2[i]=lastArray[i];
        System.out.print(lastArray[i]+" ");  
    }  
    


    //数组排序  sort()方法
    System.out.println("对lastArray2数组排序:"); //此时lastArray2的元素与firstArray数组元素相同
Arrays.sort(lastArray2);
for(int i=0;i<lastArray2.length;i++){  
       System.out.print(lastArray2[i]+" ");  

    } 
        
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: