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("包含‘第四个元素’");
}
//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]+" ");
}
相关文章推荐
- Map集合,List集合,Array数组,Iterator迭代,Collection集合,Set集合的多种遍历方式
- Java中 set,list,array(集合与数组)、Map相互转换
- Java基础知识强化之集合框架笔记67:Map集合面试题之List,Set,Map等接口是否继承自Map接口
- Java之数组array和集合list、set、map
- Java中 set,list,array(集合与数组)、Map相互转换
- 基础知识系列☞C#中数组Array、ArrayList和List三者的区别
- Java基础知识回顾之四 ----- 集合List、Map和Set
- java基础知识5--集合类(Set,List,Map)和迭代器Iterator的使用
- Java 基础集合转换(数组、List、Set、Map相互转换)
- Java基础知识——集合体系回顾整理(List Set Map)
- Java基础:循环迭代Array/List/Set/Map集合 增强for循环
- ArrayList,LinkedList;TreeSet ,HashSet ,Map 集合知识的基础理解。
- Parcelable 序列化集合List,数组 Array,布尔值 boolean 先将就看这两篇文章,后期整理
- Java之数组array和集合list、set、map
- Java之数组array和集合list、set、map
- NHibernate集合映射中的set, list, map, bag, array
- Java基础知识_集合(ArrayList & LinkedList & Vector & 迭代器)
- Java基础知识:Java实现Map集合二级联动4
- JAVA基础回顾1 遍历List Set 和Map集合的所有方法
- intent几种传值数组、对象、集合(Array,Object,List)