集合框架总结

常用的集合在系统中定义了3个接口,其区别为:
java.util.Set为无序的集合,里面不允许有相同的元素,当新加入的元素为已经存在,则不执行add方法。
java.util.List为有序线性的集合,类似于数组,是可以存在相同元素的。
java.util.Map为一个具有映射关系的集合,也是无序的,可以存在相同的value值,但不能有相同的key值,且当加入新元素时,如果key值已经存在,
则新元素的value值会替代原来该key值所对应value的值。
这三者的常用的实现类分别为:java.util.hashset,java.util.ArrayList,java.util.hashmap
目前用到比较常用的set接口的实现方法有:增 add(E O),删remove(Object o),clear(),判断是否为空isEmpty(),等等
常用的List接口的实现方法有:add(E e),add(int index,E element),remove(int index),remove(Object o),clear(),
list实现类ArrayList其实就是一个队列。
而常用的Map接口的实现方法有:clear(), Set<K> keySet(),isEmpty(),get(Object key),put(K key,V value)。
这些方法只要我们经常用才会比较熟练。下面就用具体的例子来运用上面这些方法吧。
1.1.给定任意int一维数组
  a.去掉数组中的重复元素
  b.给数组排序
  因为考虑到不能有相同元素存在,所以必须要用到Set,具体代码如下:
  import java.util.HashSet;
import java.util.Iterator;

public class ArrayTest {

/**
* 用hashset来实现
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
     //创建一个一维数组
int array[]={132,2,3,1,2,3,5,623,213,3,2,6,7};
     HashSet<Integer>set=new HashSet();//实例化一个hashset对象
     //将数组元素加入到hashset里面
     for(int i=0;i<array.length;i++){
    set.add(array[i]);
     }
     //给set排序
     Iterator<Integer> it=set.iterator();
     ArrayList <Integer>list=new ArrayList<Integer>();//定义一个新队列,用来存储set里面的元素
     while(it.hasNext()){//如果为true则执行
        int num=it.next();
         list.add(num);
    } 
     //给队列排序
     for(int i=0;i<list.size();i++){
    for(int j=i+1;j<list.size();j++){
    if(list.get(i)>list.get(j)){
       int temp=list.get(i);
       list.set(i, list.get(j));
       list.set(j, temp);
    }
    }
     }
     //打印队列元素
     for(int i=0;i<list.size();i++)
    System.out.println("元素:"+list.get(i));
}

}
  运行结果为:
  元素:1
元素:2
元素:3
元素:5
元素:6
元素:7
元素:132
元素:213
元素:623
 
=============================================================================================
2.给定任意字符串String str = "   ";
     统计字符串中每个字符出现的次数
  分析:因为每个字符会有自己的次数,所以是一个映射关系,所以需要用到Map
代码如下:
package cn.java.test;

import java.util.HashMap;

public class Stringtest {

/**
* @
*/
public static void main(String[] args) {
//先创建一个hashmap的对象
HashMap<Character,Integer>map=new HashMap<Character,Integer>();
//先任取一段字串
String str=new String("sjfksfksafkekjfdhksdfiokvshslfjsahfafojrgdiahg");
for(int i=0;i<str.length();i++){
int count=0;//定义计数器为0
char c=str.charAt(i);
for(int j=0;j<str.length();j++){
if(str.charAt(j)==c){
  count++;//计数器+1
}
}
map.put(c, count);
}
//遍历
//得到装有K的Set
java.util.Set<Character>  keys = map.keySet();
//遍历Set
for(char c:keys){
//根据K得到对应的V
int num = map.get(c);
System.out.println(c+"字符的次数为:"+num);

}

}

}
运行结果为:
f字符的次数为:8
g字符的次数为:2
d字符的次数为:3
e字符的次数为:1
a字符的次数为:4
o字符的次数为:2
l字符的次数为:1
j字符的次数为:4
k字符的次数为:6
h字符的次数为:4
i字符的次数为:2
v字符的次数为:1
s字符的次数为:7
r字符的次数为:1
=====================================================================================================
所以说还是只有用过才知道。。
 

你可能感兴趣的:(java)