1.ArrayList的构造
public class text1 {
//array的构造
public static void main(String[] args){
//构造一个空的列表
List<Integer> list1=new ArrayList<>();
list1.add(2);
//构造一个具有10个容量的列表
List<Integer> list2=new ArrayList<>(10);
list2.add(3);
//创建列表时,避免省略类型.
List list3=new ArrayList<>();
list3.add("121");
list3.add("sdf");
}
}
2.ArrayList的常见操作.
public static void main(String[] args){
List<String> list=new ArrayList<>();
list.add("we");
list.add("are");
list.add("friends");
System.out.println(list);
//获取list中的有效元素的个数
int s=list.size();
System.out.println(s);
//获取和设置index位置上的元素,index必须位于size之内
String ch=list.get(1);
System.out.println(ch);
list.set(2,"people");
System.out.println(list);
//在list的index位置上插入指定元素,index及后续的元素统一向后移动一个位置
list.add(1,"sw");
System.out.println(list);
//删除list中index位置的元素,注意不能越界.
list.remove(1);
System.out.println(list);
//检测list中是否包含指定元素,包含则返回true,否则返回false;
if(list.contains("good")){
System.out.println("包含");
}
//查找指定元素第一次出现的位置:indexOf从前往后找,lastIndexof从后往前找
list.add("jojo");
System.out.println(list);
System.out.println(list.indexOf("jojo"));
System.out.println(list.lastIndexOf("jojo"));
}
}
3.ArrayList的遍历
public static void main(String[] args){
List<Integer> list= new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
//使用下标加for遍历
for(int i=0;i<list.size();i++){
System.out.println(list.get(i)+"");
}
System.out.println();
//借助foreach遍历
for(Integer as:list ){
System.out.println(as);
}
}
4.杨辉三角
public static List<List<Integer>> generate(int numRow){
//"二维数组"来表示杨辉三角
List<List<Integer>> list1=new ArrayList<>();
//顺序表来表示每一行
List<Integer> list2=new ArrayList<>();
//杨辉三角的第一行是一,可以先表示出来.
list2.add(1);
list1.add(list2);
//用一个循环来计算接下来的行数 并且第一行已经设置为1了,直接从第二行开始
for(int i=1;i<numRow;i++){
//在循环内创建一个顺序表来表示这一行
List<Integer> list3=new ArrayList<>();
list3.add(1);
//接下来是中间的数字,需要设置循环来实现,同时必须得到上一行
List<Integer> list4=list1.get(i-1);
for(int j=1;j<i;j++){
int x=list4.get(j)+list4.get(j-1);
list3.add(x);
}
list3.add(1);
list1.add(list3);
}
return list1;
}
public static void main(String[] args){
List<List<Integer>> list=text1.generate(5);
System.out.println(list);
}
打印如下:
5.扑克牌游戏,具体细节如下:
1.首先创建一个牌的类
public class Card {
private String suit;//花色
private int num;//数字
public Card(String suit,int num){
this.num=num;
this.suit=suit;
}
@Override
public String toString() {
return super.toString();
}
}
2.创建一副牌
import java.util.ArrayList;
import java.util.List;
public class Cardgame {
//生成一副扑克牌
//设置一个数组来生成牌
public static final String[] suits={"♥","♣","♦","♠"};
//用一个方法来生成牌
public List<Card> buyCard(){
//通过顺序表来记录牌
List<Card> cardlist= new ArrayList<>();
for(int i=0;i<4;i++){
for(int j=1;j<=13;j++){
cardlist.add(new Card(suits[i],j));
}
}
return cardlist;
}
}
3.将牌的顺序打乱
public void shuffle(List<Card> listcard){
Random random=new Random();
for(int i=listcard.size()-1;i>0;i--){
int x=random.nextInt(i);
swap(listcard,i,x);
}
}
public static void swap(List<Card> listcard,int i,int j){
Card temp=listcard.get(i);
listcard.set(i,listcard.get(j));
listcard.set(j,temp);
}
4.玩牌
三个人轮流抓五张牌
public List<List<Card>> getCard(List<Card> cardList){
List<Card> hand1=new ArrayList<>();
List<Card> hand2=new ArrayList<>();
List<Card> hand3=new ArrayList<>();
List<List<Card>> hand=new ArrayList<>();
hand.add(hand1);
hand.add(hand2);
hand.add(hand3);
for(int i=0;i<5;i++){
for(int j=0;i<3;j++){
Card card=cardList.remove(j);
hand.get(j).add(card);
}
}
}
接下来在主函数中执行即可.