TA的每日心情 | 开心 2021-12-13 21:45 |
---|
签到天数: 15 天 [LV.4]偶尔看看III
|
java集合类分为三种
Set(集合):集合中对象不按特定的方式排序。并且没有重复对象,但它有些实现类中的对象按特定方式排序。--无序,不能重复
List(列表):集合中的对象按照检索位置排序,可以有重复对象,允许按照对象在集中的索引位置检索对象,List和数组有些相似。--有序,可以重复
Map(映射):集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键对象,值对象可以重复,它的有些实现类能对集合中的键对象进行排序。
Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法。
Set 和List 都继承了Conllection,但Map没有。
Collection接口的方法:
boolean add(Object o) :向集合中加入一个对象的引用
void clear() :删除集合中所有的对象,即不再持有这些对象的引用
boolean isEmpty() :判断集合是否为空
boolean contains(Object o): 判断集合中是否持有特定对象的引用
Iterartor iterator() : 返回一个Iterator对象,可以用来遍历集合中的元素
boolean remove(Object o):从集合中删除一个对象的引用
int size() :返回集合中元素的数目
Object[] toArray() :返回一个数组,该数组中包括集合中的所有元素
关于:Iterator() 和toArray() 方法都用于集合的所有的元素,前者返回一个Iterator对象,后者返回一个包含集合中所有元素的数组。
Set 的用法:
在Java中使用Set,可以方便地将需要的类型以集合类型保存在一个变量中.主要应用在显示列表 存放的是对象的引用,没有重复对象
- Set set=new HashSet();
- String s1=new String("hello");
- String s2=s1;
- String s3=new String("world");
- set.add(s1);
- set.add(s2);
- set.add(s3);
- System.out.println(set.size());//打印集合中对象的数目 为 2。
- Set 的 add()方法是如何判断对象是否已经存放在集合中?
- boolean isExists=false;
- Iterator iterator=set.iterator();
- while(it.hasNext()){
- String oldStr=it.next();
- if(newStr.equals(oldStr)){
- isExists=true;
- }
复制代码 List的用法:
- List[<数据类型>] list = new ArrayList[<数据类型>]();
复制代码- [/code]
- [code]获得集合内元素个数:list.size();添加元素:默认添加:list.add(e);指定下标添加(添加后下标后的元素向后挪一位):list.add(index,e);删除元素:返回是否删除:list.remove(e);直接删除指定下标的元素(只删除找到的第一个相符合的元素):list.remove(index);替换元素(替换掉指定下标的元素):list.set(index,e);取出元素:list.get(index);清空集合:list.clear();判断集合中是否存在某个元素(存在返回true,不存在返回false):list.contains(e);对比两个集合中的所有元素:两个对象一定相等:list.equals(list2);两个对象不一定相等:list.hashCode() == list2.hashCode();(两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象。)获得元素下标:元素存在则返回找到的第一个元素的下标,不存在则返回-1:list.indexOf(e);元素存在则返回找到的最后一个元素的下标,不存在则返回-1:list.lastIndexOf(e);判断集合是否为空(空则返回true,非空则返回false):list.isEmpty();返回Iterator集合对象:list.iterator();将集合转换为字符串:list.toString();截取集合(从fromIndex开始在toIndex前结束,[fromIndex,toIndex)):list.subList(fromIndex,toIndex);将集合转换为数组:默认类型:list.toArray();指定类型(objects为指定类型的数组对象,并将转换好的数组赋值给objects数组):list.toArray(objects);
复制代码
Map的用法:
Map<Object,Object> map = new HashMap<Object,Object>();
map.put(Object key, Object value): 向集合中加入元素
map.remove(Object key): 删除与KEY相关的元素
map.putAll(Map t): 将来自特定映像的所有元素添加给该映像
map. clear(): 从映像中删除所有映射
遍历map的几种方法:
1、最罗嗦遍历Map的方法:
- Set keys = map.keySet( );
- if(keys != null) {
- Iterator iterator = keys.iterator( );
- while(iterator.hasNext( )) {
- Object key = iterator.next( );
- Object value = map.get(key);
- }
- }
复制代码 2、
使用Map.Entry类,你可以得到在同一时间得到所有的信息。
Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的 对象集。接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,因此,上面的代码可以被组织得更符合逻辑。
Map.Entry同时也提供了一个setValue()方法
- Map<Integer,String> map = new HashMap<Integer, String>();
- map.put(001, "world");
- map.put(002, "hello");
- for(Map.Entry<Integer, String> entry:map.entrySet()){
- System.out.println(entry.getKey()+"==="+entry.getValue());
- }
- output:
- 1===world
- 2===hello
复制代码 3、最简单的方法,使用增强for循环:
- for (int key : map.keySet()) { System.out.println(key + " : " + map.get(key));}
复制代码
|
|