Java中List集合
2016-07-09 08:14
323 查看
List集合
集合迭代
package com.cloud.list;import java.util.ArrayList;
import java.util.List;
public class Demo1 {
public static void main(String[] args) {
List list=new ArrayList();
list.add("Spring1");
list.add("Spring2");
list.add("Spring3");
list.add("Spring4");
for(int i=0;i<list.size();i++){
System.out.println(list.get(i)+";");
}
List sublist=list.subList(1, 4);
System.out.println(sublist);
}
}
package com.cloud.list; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class Demo2 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub List list=new ArrayList(); list.add("Spring1"); list.add("Spring2"); list.add("Spring3"); ListIterator it=list.listIterator(); it.next(); it.next(); it.set("Spring5"); /* it.add("Spring4"); while(it.hasNext()){ System.out.println(it.next()); } */ System.out.println(list); } }
正逆迭代
package com.cloud.list;import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Demo3 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List list=new ArrayList();
list.add("Spring1");
list.add("Spring2");
list.add("Spring3");
//一:for变量集合
for(int i=0;i<list.size();i++){
System.out.print(list.get(i)+";");
}
System.out.println();
//二:迭代器正序迭代
ListIterator it=list.listIterator();
while(it.hasNext()){
System.out.print(it.next()+";");
}
System.out.println();
//三:迭代器倒序迭代
while(it.hasPrevious()){
System.out.print(it.previous()+";");
}
}
}
ArrayList集合
package com.cloud.list; import java.util.ArrayList; import java.util.Iterator; /* ArrayList * 查询快,增删慢 */ public class Demo4 { public static void main(String[] args) { ArrayList list=new ArrayList(); list.add(new Book(1,"java编程1")); list.add(new Book(2,"java编程2")); list.add(new Book(3,"java编程3")); list.add(new Book(3,"java编程4")); System.out.println(list); ArrayList list2=clearRepeat(list); System.out.println(list2); } public static ArrayList clearRepeat(ArrayList list){ //创建新的集合 ArrayList newList=new ArrayList(); //获取新的集合 Iterator it= list.iterator(); while(it.hasNext()){ Book book=(Book) it.next(); if(!newList.contains(book)){ newList.add(book); } } return newList; } } class Book{ int id; String name; public Book(int id,String name){ this.id=id; this.name=name; } @Override public String toString() { // TODO Auto-generated method stub return "(编号:"+this.id+";名字:"+this.name+")"; } @Override public boolean equals(Object obj) { Book book=(Book)obj; return this.id==book.id; } @Override public int hashCode() { // TODO Auto-generated method stub return super.hashCode(); } }
LinkedList集合
package com.cloud.list; import java.util.Iterator; import java.util.LinkedList; public class Demo5 { /* LinkedList 查询速度慢,增删快 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 static void main(String[] args) { LinkedList list=new LinkedList(); list.add("Spring2"); list.add("Spring3"); list.add("Spring4"); // list.addFirst("Spring1"); // list.push("Spring");//把该元素放到集合的首位置 // System.out.println("集合的首元素"+list.pop());//移除并返回集合中的第一个元素 // list.offer("Spring0");//添加到末尾位置 // System.out.println(list); //逆向输出的迭代器 Iterator it = list.descendingIterator(); while (it.hasNext()) { System.out.println(it.next()); } } } |
模拟集合中的值栈
package com.cloud.list; import java.util.LinkedList; public class Demo6 { /* 2:数据结构 1:栈 (1.6) : 主要是用于实现堆栈数据结构的存储方式。 先进后出 push() pop() 2:队列(双端队列1.5): 主要是为了让你们可以使用LinkedList模拟队列数据结构的存储方式。 先进先出 offer() poll() */ public static void main(String[] args) { System.out.println("======测试值栈======="); StackList list=new StackList(); list.add("Spring1"); list.add("Spring2"); list.add("Spring3"); // System.out.println(list.pop());//删除并返回Spring3 // System.out.println(list.pop());//删除并返回Spring2 // System.out.println(list.pop());//删除并返回Spring1 /*list.size()大小在不断的变化,所以很难遍历完 for(int i=0;i<list.size();i++){ System.out.println(list.pop()); } */ int size=list.size(); for(int i=0;i<size;i++){ System.out.println(list.pop()); } System.out.println("======测试队列======="); TeamList list2=new TeamList(); list2.add("Spring1"); list2.add("Spring2"); list2.add("Spring3"); int size2=list2.size(); for(int i=0;i<size2;i++){ System.out.println(list2.remove()); } } } //模拟堆栈存储方式 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(); } } //模拟队列存储方式 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(); } } |
模拟洗牌的案例
package com.cloud.day3; import java.util.LinkedList; import java.util.Random; /* * 实现一副扑克牌的洗牌功能 */ class Poker{ String color; String num; public Poker(String color,String num){ this.color=color; this.num=num; } public String toString(){ return "{"+color+num+"}"; } } public class Demo1 { public static void main(String[] args) { LinkedList<Poker> list=createPokers(); System.out.println(list.size()+"张扑克牌"); washPokers(list); showPokers(list); } //获取一副扑克牌 public static LinkedList<Poker> createPokers(){ LinkedList<Poker> list=new LinkedList<Poker>(); String [] color={"红桃","黑桃","方块","梅花"}; 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<color.length;j++){ list.add(new Poker(color[j],nums[i])); } } return list; } //显示一副扑克牌 public static void showPokers(LinkedList<Poker> list){ for(int i=0;i<list.size();i++){ System.out.print(list.get(i)); if(i%10==9){ System.out.println(); } } } //刷新一副扑克牌 public static void washPokers(LinkedList<Poker> pokers){ Random random=new Random(); for(int i=0;i<20;i++){ //随机产生两个索引值 int index1=random.nextInt(pokers.size()); int index2=random.nextInt(pokers.size()); //根据索引取出两张牌,然后交换顺序 Poker poker1=pokers.get(index1); Poker poker2=pokers.get(index2); pokers.set(index1, poker2); pokers.set(index2, poker1); } } }
集合比较大小
package com.cloud.day3; import java.util.LinkedList; public class Demo2 { public static void main(String[] args) { LinkedList<Person> list=new LinkedList<Person>(); list.add(new Person("Spring1",13)); list.add(new Person("Spring2",12)); list.add(new Person("Spring3",11)); for(int i=0;i<list.size()-1;i++){ for(int j=i+1;j<list.size();j++){ Person p1 = list.get(i); Person p2 = list.get(j); if(p1.age>p2.age){ list.set(i, p2); list.set(j, p1); } } } System.out.println(list); } } class Person{ String name; int age; public Person(String name,int age){ this.name=name; this.age=age; } @Override public String toString() { return "[姓名:"+this.name+";年龄:"+this.age+"]"; } }
相关文章推荐
- Spring编码转换过滤器解决乱码
- Java千百问_08JDK详解(016)_AttachAPI是什么
- javaWeb开发中读取资源文件方法总结
- String.split
- java设置一段代码执行超时时间
- Java多线程01_可重入函数、可重入锁
- java设计模式:(策略模式)
- spring springdata jpa 报错
- Intellij IDEA中Hibernate中创建的数据类中,无法发现table和列
- java自学循环与选择性语句及表达式语句运算
- 用JAVA日志来写诗
- Java 线程同步(wait、notify、notifyAll)
- Java 泛型 通配符类型
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- rip协议java模拟实现
- java lang NoClassDefFoundError org springframework util MimeType
- Java中巧用字符串连接
- Java使用Tess4J 进行图片文字识别
- JAVA第二课——事件监听以及画板的制作
- java ZXing生成二维码及条码实例分享