首页 > 编程知识 正文

arraylist的方法有哪些(arraylist的使用)

时间:2023-05-03 20:39:45 阅读:68748 作者:4508

目录ArrayList概述生成ArrayList常见操作末尾插入删除打印剪切部分列表练习:删除第一个字符串中出现的第二个字符串中的字符以模拟扑克牌的发布

ArrayList介绍

在集合框架中,ArrayList是一个常见的类,它实现了List接口。 具体框架图如下。【说明】

1. ArrayList实现了随机访问接口,表明ArrayList支持随机访问

2. ArrayList实现了可克隆接口,表明ArrayList可以克隆

3. ArrayList实现了序列化接口,表明ArrayList支持序列化

3 .与vector不同,ArrayList可用于单线程,而不是线程安全,多线程可用于vector或

版权所有rraylist

4. ArrayList的基础是连续的空间,可以动态扩展,是动态类型的顺序表

如何构建ArrayList ()无引用结构ArrayList ) ) collection? extends E c )利用其他的Collection构建数组列表(intinitial capacity ),生成顺序表的初始容量publicstaticvoidmain (字符串[ ] ) 在最初的add中是10,是1.5倍。

//具有10个容量的列表listintegerlist2=new ArrayList (10 ); list2.add(1; list2.add(2; list2.add(3; //list2.add(Hello ); //编译失败。 ListInteger已经有限。 list2中还只能存储1.5倍的整形元素**注: **扩展。

publicstaticvoidmain6(string [ ] args ) ArrayList string list1=new ArrayList ); //初期的大小是什么? 答案是0list1.add(Haha! )。 ); //在第一次存储数据元素时,顺序表被指派了大小10system.out.println(list1)。 ArrayList字符串列表2=new ArrayList (13; //初始大小由指定的13 } //list3组成,然后与列表中的元素匹配的arraylistintegerlist3=new ArrayList (list ); //不省略类型。 否则,任何类型的元素都可以存储,使用时会成为灾难的列表4=new ArrayList (; list4.add('111 ); list4.add(100; ArrayList常规操作publicstaticvoidmain (字符串[ ] args ) ) ArrayList字符串列表2=new ArrayList ); list2.add(Hello ); list2.添加(世界); list2.add(Haha ); system.out.println (列表2; }

publicstaticvoidmain (字符串[ ] args ) ArrayList字符串列表2=new ArrayList ); list2.add(Hello ); list2.添加(世界); list2.add(Haha ); system.out.println (列表2; system.out.println ('=================' ); for(intI=0; i list2.size (; I ) {system.out.print(list2.get(I ) '); } System.out.println (; system.out.println ((=================) () ) ); for(strings:list2) system.out.print(s ' ); } Sys

tem.out.println(); System.out.println("========迭代器打印=========="); Iterator<String> it = list2.iterator(); while (it.hasNext()) { System.out.print(it.next()+" "); } System.out.println(); System.out.println("========迭代器List相关打印=========="); ListIterator<String> it2 = list2.listIterator(); while (it2.hasNext()) { System.out.print(it2.next()+" "); } }

删除 public static void main(String[] args) { ArrayList<String> list2 = new ArrayList<>(); list2.add("hello"); list2.add("world"); list2.add("haha"); Iterator<String> it = list2.iterator(); while (it.hasNext()) { String ret = it.next(); if(ret.equals("hello")) { it.remove();//首先需要使用next方法迭代出集合中的元素 ,然后才能调用remove方法 }else { System.out.print(ret + " "); } } System.out.println(); System.out.println("========迭代器List相关打印=========="); ListIterator<String> it2 = list2.listIterator(); while (it2.hasNext()) { String ret = it2.next(); if(ret.equals("hello")) { it2.remove();//首先需要使用next方法迭代出集合中的元素 ,然后才能调用remove方法 }else { System.out.print(ret + " "); } } }

截取部分 list public static void main(String[] args) { ArrayList<String> list2 = new ArrayList<>(); list2.add("a"); list2.add("c"); list2.add("g"); list2.add("a"); list2.add("o"); List<String> sub = list2.subList(1, 3); System.out.println(sub); System.out.println(list2); System.out.println("=================="); sub.set(0, "p"); System.out.println(sub); System.out.println(list2); }

练习:删除第一个字符串中出现的第二个字符串中的字符 public static void main(String[] args) { String str1 = "welcome to china"; String str2 = "come"; System.out.println(str1); ArrayList<Character> list = new ArrayList<>(); for (int i = 0; i < str1.length(); i++) { char ch = str1.charAt(i); if (!str2.contains(ch + "")) { list.add(ch); } } for (char ch : list) { System.out.print(ch); } }

模拟发放扑克牌 class Card { private int rank;//数字 private String suit;//花色 public Card(int rank, String suit) { this.rank = rank; this.suit = suit; } @Override public String toString() { return "[ "+this.suit+":"+this.rank+" ]"; }}//没有大小王:1 2 3 。。。。。。10 11 12 13public class TestDemo2 { private static final String[] suits = {"♥","♠","♣","♦"}; public static List<Card> buyCard() { ArrayList<Card> cards = new ArrayList<>(); for (int i = 0; i < 4; i++) { for (int j = 1; j <= 13; j++) { /*String suit = suits[i]; int rank = j; Card card = new Card(rank,suit); cards.add(card);*/ cards.add(new Card(j,suits[i])); } } return cards; } private static void swap(List<Card> cards,int i,int j) { //Card tmp = cards[i]; Card tmp = cards.get(i); //cards[i] = cards[j]; cards.set(i,cards.get(j)); //cards[j] = tmp; cards.set(j,tmp); } public static void shuffle(List<Card> cards) { int size = cards.size(); for (int i = size-1; i > 0 ; i--) { Random random = new Random(); int rand = random.nextInt(i); swap(cards,i,rand); } } public static void main(String[] args) { List<Card> cards = buyCard(); System.out.println("买牌:"+cards); shuffle(cards); System.out.println("洗牌:"+cards); System.out.println("揭牌:3个人每个人轮流揭5张牌"); ArrayList<List<Card>> hand = new ArrayList<>(); List<Card> hand1 = new ArrayList<>(); List<Card> hand2 = new ArrayList<>(); List<Card> hand3 = new ArrayList<>(); hand.add(hand1); hand.add(hand2); hand.add(hand3); //每个人,轮流揭牌 for (int i = 0; i < 5; i++) { for (int j = 0; j < 3; j++) { Card card = cards.remove(0); hand.get(j).add(card); } } System.out.println("第1个人的牌:"+hand1); System.out.println("第2个人的牌:"+hand2); System.out.println("第3个人的牌:"+hand3); System.out.println("剩下的牌:"+cards); } public List<List<Integer>> generate(int numRows) { List<List<Integer>> ret = new ArrayList<>(); //第一行: List<Integer> list1 = new ArrayList<>(); list1.add(1); ret.add(list1);//才把第一行的数据存放到了ret当中 for (int i = 1; i < numRows; i++) { List<Integer> list = new ArrayList<>(); list.add(1);//每一行的开始都是1 List<Integer> preRow = ret.get(i-1);//上一行 for (int j = 1; j < i ; j++) { //中间的情况 int num1 = preRow.get(j)+preRow.get(j-1); list.add(num1); } list.add(1);//每一行的结尾都是1 ret.add(list); } return ret; } public static void main1(String[] args) { Card card = new Card(3,"♥"); System.out.println(card); }}

复习专用!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。