集合的简单使用

来源:互联网 发布:mac hex 编辑器 编辑:程序博客网 时间:2024/05/22 10:35


用数组就可以了,为什么还需要学习集合呢?
1. 因为数组是定长的,不容易修改其长度。[数组的缺点之一]
2. 数组里存放的元素类型必须一致。[数组的缺点之二]

而集合则可以弥补这两个缺点。

ArrayList的使用
public class Test {
 public static void main(String[] args) {
  /*
    创建一个集合,该集合的类型是ArrayList
    Ctrl+1: 快速导包
    ArrayList的特点:
    1. ArrayList这个集合是有序且可重复的
    2. ArrayList的内部数据结构是使用"数组"实现的
   */
  ArrayList list = new ArrayList();
  
  // ArrayList怎么添加数据呢?这里的数据指的就是对象
  // ArrayList添加对象(使用add方法)
  list.add("A");
  list.add("B");
  list.add("C");
  list.add("D");
  list.add("E");
  
  /*
  如何遍历ArrayList集合里的数据?有两种方式:
  1. 使用迭代器Iterator
  2. 使用增强for循环
  */
  /*
  // 拿到ArrayList里的一个瓢;
  Iterator it = list.iterator();
  // it.hasNext() 看一下桶里有没有下一个元素,如果有则返回true,没有则返回false
  // it.next() 取出元素
  while(it.hasNext()) {
   Object obj = it.next();
   System.out.println(obj); // Alt+/
  }
  */
  // 增强for循环专门用来循环数组和集合
  for(Object obj: list)
   System.out.println(obj);
  /*
  语法:
  for(类型 变量名: 集合或数组) {
  }
  */
  
  // ArrayList的删除
  list.remove(0);
  
  // ArrayList修改元素
  list.set(0, "Y");
 }
}


LinkedList的使用
public static void main(String[] args) {
  /*
  LinkedList集合的特点:
  1. 有序的,可重复的
  2. 数据结构是使用“链表”实现的
   */
  // 创建一个LinkedList集合
  LinkedList link = new LinkedList();
  link.add("A");
  link.add("B");
  link.add("C");
  link.add("D");
  
  link.remove(0);
  
  link.set(0, "XXYY");
  
  for(Object obj: link)
   System.out.println(obj);
  
 }


HashSet示例:
public static void main(String[] args) {
  /*
  HashSet集合的特点:
  1. 无序的,不可重复
  2. 数据结构使哈希表实现的(再说底层一点,这个哈希表是使用“链表+数组”来实现的)
  
  HashSet怎么做到不可重复的?
  调用放进去对象的equals()方法来判断对象是否重复
  为了加快判断对象是否重复的速度,强烈推荐对象实现equals方法的同时,也实现hashcode方法
  */
  
  HashSet hs = new HashSet();
  String a = new String("A");
  String b = new String("A");
  hs.add(new Person());
  
  for(Object obj: hs)
   System.out.println(obj);
 }

 

Map集合的使用示例:
 public static void main(String[] args) {
  /*
   HashMap集合的特点:
   1. 专门用来存放键值对(key-value)
   2. HashMap的Key是使用Set集合来存放的,所以Key里的元素是“无序,不可重复”
  */
  
  HashMap<String, String> map = new HashMap<String, String>();
  
  // 对Map集合放数据 put
  // 左边称为键key,右边称为值value
  map.put("zhangsan", "12345");
  map.put("lisi", "xxyy");
  map.put("wanwu", "5201314");
  
  // 根据key获得一个value
  Object obj = map.get("zhangsan");
  System.out.println(obj);
  
  /*
  难点:如何遍历HashMap集合
  1. 使用keySet()和get()方法组合来遍历HashMap集合
  2. 使用entrySet()方法来遍历HashMap集合
  总结:推荐使用第二个方法,因为它是速度最快的。
   */
  // 第一个方法
  // 把HashMap集合里的key全部放到一个Set集合里面。
//  Set keys = map.keySet();
//  for(Object key: keys) {
//   Object value = map.get(key);
//   System.out.println(key + "=" + value);
//  }
  
  // 第二个方法
  Set<Map.Entry<String, String>> entrySets = map.entrySet();
  for(Entry<String, String> en: entrySets) {
   System.out.println(en.getKey() + "=" + en.getValue());
  }
  
  
//  ArrayList list = new ArrayList();
//  list.add("zhangsan 12345");
 }

原创粉丝点击