List
来源:互联网 发布:国联期货数据导出 编辑:程序博客网 时间:2024/05/21 04:19
/* 集合:集合是存储对象数据的集合容器。集合比数组的优势: 1. 集合可以存储任意类型的对象数据,数组只能存储同一种数据类型 的数据。 2. 集合的长度是会发生变化的,数组的长度是固定的。-------| Collection 单例集合的跟接口。 ----------| List 如果是实现了List接口的集合类,具备的特点: 有序,可重复。 ----------| Set 如果是实现了Set接口的集合类,具备特点: 无序,不可重复。Collection接口中的方法: 增加 add(E e) 添加成功返回true,添加 失败返回false. addAll(Collection c) 把一个集合 的元素添加到另外一个集合中去。 删除 clear() remove(Object o) removeAll(Collection c) retainAll(Collection c) 查看 size() 判断 isEmpty() contains(Object o) containsAll(Collection<?> c) 迭代 toArray() iterator() */public class Demo2 { public static void main(String[] args) { Collection c = new ArrayList(); c.add("令计划"); c.add("徐才厚"); c.add("周永康"); System.out.println("添加成功吗?"+c.add("郭美美")); //创建集合 Collection c2 = new ArrayList(); c2.add("徐才厚"); c2.add("郭美美"); c2.add("狗娃"); /* c.addAll(c2); // 把c2的元素的添加到c集合 中去。 */ /* 删除方法: c.clear(); //clear()清空集合中的元素 System.out.println("删除成功吗?"+c.remove("美美")); // remove 指定集合中的元素删除,删除成功返回true,删除失败返回false. c.removeAll(c2); //删除c集合中与c2的交集元素。 c.retainAll(c2); //保留c集合与c2的交集元素,其他的元素一并删除。 */ System.out.println("查看元素个数:"+c.size()); System.out.println("集合的元素:"+ c); }}
/*集合的体系:----------| Collection 单列集合的根接口----------------| List 如果实现了List接口的集合类,具备的特点: 有序,可重复。--------------------| ArrayList ArrayList 底层是维护了一个Object数组实现 的, 特点: 查询速度快,增删慢。什么时候使用ArrayList: 如果目前的数据是查询比较多,增删比较少的时候,那么就使用ArrayList存储这批数据。 比如 :高校的 图书馆--------------------| LinkedList LinkedList底层是使用了链表数据结构实现的, 特点: 查询速度慢,增删快。--------------------| Vector(了解即可)----------------| Set 如果实现了Set接口的集合类, 具备的特点: 无序,不可重复。Linkedlist特有的方法: 1:方法介绍 addFirst(E e) addLast(E e) getFirst() getLast() removeFirst() removeLast() 2:数据结构 1:栈 (1.6) : 主要是用于实现堆栈数据结构的存储方式。 先进后出 push() pop() 2:队列(双端队列1.5): 主要是为了让你们可以使用LinkedList模拟队列数据结构的存储方式。 先进先出 offer() poll() 3:返回逆序的迭代器对象 descendingIterator() 返回逆序的迭代器对象*/public class Demo8 { public static void main(String[] args) { LinkedList list= new LinkedList(); list.add("张三"); list.add("李四"); list.add("王五");/* list.addFirst("狗娃"); //把元素添加到集合的首位置上。 list.addLast("狗剩"); //把元素添加到集合的末尾处。 System.out.println("获取集合中首位置的元素:"+list.getFirst()); System.out.println("获取集合中末尾的元素:"+ list.getLast()); System.out.println("删除集合中的首位置元素并返回:"+ list.removeFirst()); System.out.println("删除集合中的末尾素并返回:"+ list.removeLast()); list.push("狗娃"); //将该元素插入此集合的开头处。 System.out.println("删除集合的首元素:"+list.pop()); // 移除并返回集合中的第一个元素 list.offer("狗剩"); System.out.println("删除集合的首元素: "+list.poll()); System.out.println("集合中的元素:"+ list); */ Iterator it = list.descendingIterator(); while(it.hasNext()){ System.out.println(it.next()); } }}
/*1:栈 (1.6) : 主要是用于实现堆栈数据结构的存储方式。 先进后出 push() pop()2:队列(双端队列1.5): 主要是为了让你们可以使用LinkedList模拟队列数据结构的存储方式。 先进先出 offer() poll()机试题目: 使用LinkedList实现堆栈数据结构的存储方式与队列的数据结构存储方式。 */// 使用LinkedList模拟堆栈的数据结构存储方式class StackList{ LinkedList list; public StackList(){ list = new LinkedList(); } //进栈 public void add(Object o){ list.push(o); } //弹栈 : 把元素删除并返回。 public Object pop(){ return list.pop(); } //获取元素个数 public int size(){ return list.size(); }}//使用LinkedList模拟队列的存储方式class TeamList{ LinkedList list; public TeamList(){ list = new LinkedList(); } public void add(Object o){ list.offer(o); } public Object remove(){ return list.poll(); } //获取元素个数 public int size(){ return list.size(); }}public class Demo9 { public static void main(String[] args) { TeamList list= new TeamList(); list.add("李嘉诚"); list.add("马云"); list.add("王健林"); int size = list.size(); for(int i = 0 ; i<size ; i++){ System.out.println(list.remove()); } }}
vector与ArrayList
/*集合 的体系:------------| Collection 单例集合的根接口----------------| List 如果是实现了List接口的集合类,具备的特点: 有序,可重复。 -------------------| ArrayList ArrayList 底层是维护了一个Object数组实现的。 特点: 查询速度快,增删慢。-------------------| LinkedList LinkedList 底层是使用了链表数据结构实现的, 特点: 查询速度慢,增删快。-------------------| Vector(了解即可) 底层也是维护了一个Object的数组实现的,实现与ArrayList是一样的,但是Vector是线程安全的,操作效率低。----------------| Set 如果是实现了Set接口的集合类,具备的特点: 无序,不可重复。笔试题: 说出ArrayList与Vector的区别? 相同点: ArrayList与Vector底层都是使用了Object数组实现的。 不同点: 1. ArrayList是线程不同步的,操作效率高。 Vector是线程同步的,操作效率低。 2. ArrayList是JDK1.2出现,Vector是jdk1.0的时候出现的。*/public class Demo1 { public static void main(String[] args) { Vector v = new Vector(); //添加元素 v.addElement("张三"); v.addElement("李四"); v.addElement("王五"); //迭代该集合 Enumeration e = v.elements(); //获取迭代器 while(e.hasMoreElements()){ System.out.println(e.nextElement()); } }}
案例:扑克牌洗牌
/*需求: 使用LinkedList存储一副扑克牌,然后实现洗牌功能。*///扑克类class Poker{ String color; //花色 String num; //点数 public Poker(String color, String num) { super(); this.color = color; this.num = num; } @Override public String toString() { return "{"+color+num+"}"; }}public class Demo2 { public static void main(String[] args) { LinkedList pokers = createPoker(); shufflePoker(pokers); showPoker(pokers); } //洗牌的功能 public static void shufflePoker(LinkedList pokers){ //创建随机数对象 Random random = new Random(); for(int i = 0 ; i <100; i++){ //随机产生两个索引值 int index1 = random.nextInt(pokers.size()); int index2 = random.nextInt(pokers.size()); //根据索引值取出两张牌,然后交换两张牌的顺序 Poker poker1 = (Poker) pokers.get(index1); Poker poker2 = (Poker) pokers.get(index2); pokers.set(index1, poker2); pokers.set(index2, poker1); } } //显示扑克牌 public static void showPoker(LinkedList pokers){ for(int i = 0 ; i<pokers.size() ; i++){ System.out.print(pokers.get(i)); //换行 if(i%10==9){ System.out.println(); } } } //生成扑克牌的方法 public static LinkedList createPoker(){ //该集合用于存储扑克对象。 LinkedList list = new LinkedList(); //定义数组存储所有的花色与点数 String[] colors = {"黑桃","红桃","梅花","方块"}; String[] nums = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; for(int i = 0 ; i < nums.length ; i++){ for(int j = 0 ; j<colors.length ; j++){ list.add(new Poker(colors[j], nums[i])); } } return list; }}
0 0
- List
- list
- List
- LIST
- list
- list
- List
- list
- list
- List
- list
- LIST
- List
- List
- List
- list
- list
- list
- zxing框架扫描和生成二维码
- linux工具集
- Java-HDFS 整合
- Struts2的CRUD(涵盖国际化、头像上传)
- 让PopWindow弹出在某个View的正上方
- List
- hdu 4956 Poor Hanamichi(枚举)
- 关于atoi和itoa的故事
- hdu 4981 Goffi and Median(水题)
- SICP 习题2.53~2.55 equal
- SPI
- 根据qq号获取qq头像
- 【循环网络】Torch中的rnn
- Graph单元的用法