Collection的笔记:

/**存储对象考虑使用:
* 1.数组, ①一旦创建,其长度不可变!② 长度难于应对实际情况
* 2.Java集合, ①Collection集合: 1.set: 元素无序,不可重复; 2.元素有序,可重复的集合--动态不定长数组
* ②Map集合, 具有映射关系的"key - value"对的集合
* ---------------------------------
* 1.Collection接口 常用及操作
* ①size(),clear()②isEmpty(),③contains(),④add()方法 和remove()方法, ⑤ iterator 来返回迭代器对象
* ⑥addall() 和removeall() ,添加或者删除全部! ⑦Object[] toArray() ,将集合转换为Object数组
* 2.Collection 的遍历方法:
* ① 转换成Object[]类进行输出,不常用 ; for(int i=0;i<s.length;i++)
* ②使用迭代器进行遍历集合:1.声明 Iterator it= col2.iterator();2.hasNext();3.返回迭代中的下一个元素:it.next()
* ③使用增强的for循环语句: for(Object o: collection) sout(o); //Object表示确定的类型
*/

Collection的测试代码:

public class TestCollection {
public static void main(String[] args) {
ArrayList col = new ArrayList();
ArrayList col2 = new ArrayList();
col.add(123);
col.add("QWQ");
col.add(new Date());
col2.addAll(col);
Object[] s=col2.toArray(); //1.转换成Object[]类进行输出,不常用
for(int i=0;i<s.length;i++)
System.out.print("\t("+s[i]+")");
System.out.println("--------------");
//2.使用迭代器进行遍历集合:1.声明 Iterator it= col2.iterator();2.hasNext();3.返回迭代中的下一个元素:it.next()
Iterator it= col2.iterator();
while(it.hasNext()){
System.out.print("\t"+it.next());
}
System.out.println("--------------");
//3.使用增强的for循环语句: for(Object o: collection)sout(o); //Object表示确定的类型
for (Object o: col2)
System.out.print("\t"+o); }
}

(已折叠)

Collection的测试结果:

    (123)    (QWQ)    (Sun Oct 14 17:37:55 CST 2018)--------------
123 QWQ Sun Oct 14 17:37:55 CST 2018--------------
123 QWQ Sun Oct 14 17:37:55 CST 2018

ArrayList和LinkedList的笔记:

/** ArrayList (本质:可变长数组 ):List 的主要实现类
* 易错点: 不可以使用下标直接进行索引,需要get()!
* List中相对于Collection<E> 新增加的方法
* 0. 无参数(Object)类型声明构造: List list=new ArrayList();
* 有参数(String/int...)类型声明构造: List<String> list2=new ArrayList<String>();
* 1.E get(int index);//返回索引位置的值
* 2.E set(int index,E element); //设置下标为index位置的值
* 3.void add(int index,E element); //增加值
* 4.E remove(int int index) //删除一个值
* 5.int indexOf/lastIndexOf( o) //正向或逆向查找一个元素值
* 6.可以调用size()取长度,跑循环进行 get()遍历!
* -------------
* 父类Collection接口 常用及操作
* * ①size(),clear()②isEmpty(),③contains(),④add()方法 和remove()方法, ⑤ iterator 来返回迭代器对象
* * ⑥addall() 和removeall() ,添加或者删除全部! ⑦Object[] toArray() ,将集合转换为Object数组
* -------------
* LinkedList是依靠链表实现的!优势: 常用来处理频繁的插入和删除操作;
* * 1.对于在头部插入和内部删除元素, LinkedList每次为常量时间; 而同样的, ArrayList是线性时间!
* * 1.对于定位访问, LinkedList每次为线性时间; 而同样的, ArrayList是常量时间!
* ----------------
* * LinkedList的特有操作: (简直就是C++的STL库中的deque双端队列!)
* 1.构造方法: LinkedList()/LinkedList(Collection c)
* 2.添加头部或者在尾部: addFirst(E element)/addLast(E element)
* 3.删除头部或者尾部: removeFirst()/removeLast()
* -------------
* * Vector(古老的实现类,线程安全, 基本弃用了, JDK 1.0)
*/

ArrayList和LinkedList的测试代码:

public class TestList {
public static void main(String[] args){
System.out.println("--------Test ArrayList--------");
List list=new ArrayList();
list.add(6666);
list.add(0,"6666");
list.add(0,"6667");list.add(0,"6667");
list.set(0,"6666777");
for(int i=0;i<list.size();i++)
System.out.print("\t"+list.get(i)); System.out.println("\n------Test ArrayList<String>----");
ArrayList<String> list2=new ArrayList<String>();
list2.add(0,"6666");
list2.add(0,"6667");list2.add(0,"6667");
list2.set(0,"6666777");
for (String s:list2)
System.out.print("\t"+s); LinkedList<Integer> link1= new LinkedList<Integer>();
link1.addFirst(666);
link1.addLast(7777);
link1.addLast(7777);
link1.removeLast();
LinkedList link2= new LinkedList(list2); //拿ArrayList来构造了LinkedList
System.out.print("\nlink1: ");
for (Integer i:link1)
System.out.print("\t"+i);
System.out.print("\nlink2: ");
for (Object i:link2)
System.out.print("\t"+i);
}
}

ArrayList和LinkedList的测试结果:

--------Test ArrayList--------
6666777 6667 6666 6666
------Test ArrayList<String>----
6666777 6667 6666
link1: 666 7777
link2: 6666777 6667 6666

最新文章

  1. C++标准转换运算符reinterpret_cast
  2. C#经典面试题 C# 中 Struct 与 Class 的区别,以及两者的适用场合
  3. sql 2000 分页
  4. 第五章 Spring3.0 、Hibernate3.3与Struts2的整合
  5. dos下的cd指令
  6. treeview和listview的用法
  7. ONLY三行脚本 SQL数据恢复到指定时间点
  8. HDU猜数字
  9. MD5加盐 Java加密算法
  10. 初探Azure的保留实例(Reserved Instance)
  11. Angular CurrencyPipe货币管道关于人民币符号¥的问题
  12. 分页查询最好加排序(order by)
  13. P1515 旅行(简单搜索)
  14. Day16--Python--初识面向对象
  15. Asp.net 程序连接orcle如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,
  16. 云笔记项目-补充JS面向对象编程基础知识
  17. Django--Auth 模块
  18. Study 1 —— HTML5概述
  19. hasattr() getattr() setattr() 函数使用方法
  20. cf980E TheNumberGames (贪心+倍增)

热门文章

  1. java面试考点-面试准备
  2. Java面试 - == 和 equals 的区别?
  3. 说一说Unsafe魔法类
  4. Snapshot Array
  5. 更改CodeBlocks注释的颜色
  6. [ZJOI2007]捉迷藏 (线段树,括号序列)
  7. Apache2.4+Tomcat7.0整合配置详解
  8. awesome-javascript
  9. 解决GitHub下载速度缓慢的问题
  10. asp.net core 2.0发布到IIS报错解决方案