集合 ArrayList 类

集合的基本信息:

System.Collections   系统类中的收藏类,定义各种对象(如列表,队列,位数组,哈希表和字典)的集合

常用的集合为ArrayList类;特殊集合一般会用到Queue队列集合、Stack栈集合哈有Hashtable哈希表集合。

集合和数组的区别:数组是连续的同一类型数据。集合可以是不连续的多种数据类型。

ArrayList:

ArrayList和Array的区别:

相同点:1.两者都实现了IList、ICollection、IEnumerable接口; 

     2.两者都可以使用证书索引访问集合中的元素,包括读取和赋值,且集合中的索引都从0开始。

不同点:1.ArrayList是集合而Array是数组;

     2.ArrayList是具体类而Array是抽象类;

     3.数组必须在实例化时指定元素的数量,改数量一旦确定就不可以更改了。而ArrayList扩展了这一点,当实例化时可以不指定集合元素数

     4.获取数组的元素时使用Length属性,而获取ArrayList集合的元素数使用Count属性;

     5.数组可以多维,而ArrayList只能是一维。

ArrayList al = new ArrayList();
            al.Add(5);  //添加元素
            al.Add(7);
            al.Add(6);
            Console.WriteLine(al.Count);//打印al的元素个数
            al.Insert(1, 8);//在索引1的位置插入元素8.
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine(al[i]);
            }

  

ArrayList al = new ArrayList();
            al.Add(5);  //添加元素
            al.Add(7);
            al.Add(6);
            al.Add(7);
            al.Add(6);
            al.Remove(7);//把从索引为0开始的第一个数据为7的剔除
            al.RemoveAt(3);//把索引为3的数据剔除
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine(al[i]);
            }

  

ArrayList al = new ArrayList();
            al.Add(5);  //添加元素
            al.Add(7);
            al.Add(6);
            al.Add(11);
            al.Add(8);
            al.Add(3);
            al.Sort();//排序,升序
            for (int i = 0; i < 6; i++)
            {
                Console.WriteLine(al[i]);
            }

ArrayList al = new ArrayList();
            al.Add(5);  //添加元素
            al.Add(7);
            al.Add(6);
            al.Add(11);
            al.Add(8);
            al.Add(3);
            al.Sort();
            al.Reverse();//翻转语句,执行之后变降序
            for (int i = 0; i < 6; i++)
            {
                Console.WriteLine(al[i]);
            }

  

手机号抽奖

 1 ArrayList al = new ArrayList();
 2             for (int i = 0; ; i++)
 3             {
 4                 Console.Write("请输入手机号:");
 5                 string a = Console.ReadLine();
 6                 if (a == "完成")
 7                 {
 8                     break;
 9                 }
10                 al.Add(a);
11             }
12             Console.WriteLine("输入完毕,请按回车进行抽奖!");
13             Console.ReadLine();
14             Random ran = new Random();
15             for (int i = 0; i < 30; i++)
16             {
17                 int b = ran.Next(0, al.Count);
18                 Console.Clear();
19                 Console.Write(al[b]);
20                 System.Threading.Thread.Sleep(100);
21             }
22             //Console.Clear();
23             //Console.Write("18953370733");  //作弊

手机号抽奖

//输入班级人数,输入每人的姓名语数英成绩再打印出来,求语文两个最高分,数学两个最低分,英语平均分

 1  ArrayList al = new ArrayList();
 2             Console.Write("输入班级人数:");
 3             int n = int.Parse(Console.ReadLine());
 4             for (int i = 0; i < n; i++)
 5             {
 6                 Console.Write("请输入第{0}个人的姓名:", i + 1);
 7                 al.Add(Console.ReadLine());
 8                 Console.Write("请输入第{0}个人的语文成绩:", i + 1);
 9                 al.Add(Console.ReadLine());
10                 Console.Write("请输入第{0}个人的数学成绩:", i + 1);
11                 al.Add(Console.ReadLine());
12                 Console.Write("请输入第{0}个人的英语成绩:", i + 1);
13                 al.Add(Console.ReadLine());
14
15             }
16             Console.WriteLine("输入完毕");
17             double sum = 0;
18             for (int i = 3; i < 4 * n; i += 4)
19             {
20                 sum += double.Parse(al[i].ToString());
21             }
22             double avg = sum / n;
23             for (int i = 1; i < 4 * n - 4; i += 4)
24             {
25                 for (int j = i + 4; j < 4 * n; j += 4)
26                 {
27                     if (double.Parse(al[i].ToString()) < double.Parse(al[j].ToString()))
28                     {
29                         Object t1 = al[i];
30                         al[i] = al[j];
31                         al[j] = t1;
32                         Object t2 = al[i - 1];
33                         al[i - 1] = al[j - 1];
34                         al[j - 1] = t2;
35                         Object t3 = al[i + 1];
36                         al[i + 1] = al[j + 1];
37                         al[j + 1] = t3;
38                         Object t4 = al[i + 1];
39                         al[i + 2] = al[j + 2];
40                         al[j + 2] = t4;
41                     }
42                 }
43             }
44             Console.WriteLine("语文两个最高分为{0}的{1}分,{2}的{3}分", al[0], al[1], al[4], al[5]);
45             for (int i = 2; i < 4 * n - 4; i += 4)
46             {
47                 for (int j = i + 4; j < 4 * n; j += 4)
48                 {
49                     if (double.Parse(al[i].ToString()) > double.Parse(al[j].ToString()))
50                     {
51                         Object t1 = al[i];
52                         al[i] = al[j];
53                         al[j] = t1;
54                         Object t2 = al[i - 1];
55                         al[i - 1] = al[j - 1];
56                         al[j - 1] = t2;
57                         Object t3 = al[i + 1];
58                         al[i + 1] = al[j + 1];
59                         al[j + 1] = t3;
60                         Object t4 = al[i - 2];
61                         al[i - 2] = al[j - 2];
62                         al[j - 2] = t4;
63                     }
64                 }
65             }
66             Console.WriteLine("数学两个最低分为{0}的{1}分,{2}的{3}分", al[0], al[2], al[4], al[6]);
67             Console.WriteLine("英语平均分为{0}", avg);

//输入班级人数,输入每人的语数英成绩再打印出来,求语文两个最高分,数学两个最低分,英语平均分

时间: 2024-07-31 14:33:20

集合 ArrayList 类的相关文章

java集合框架--ArrayList类、Vector和LinkedList类

1.ArrayList类概述 底层数据结构是数组,查询块,增删慢. 线程不安全,效率高. 2.ArrayList案例 2.1存储字符串并遍历 package com; import java.util.ArrayList; import java.util.Iterator; import java.util.ListIterator; public class ArrayListDemo { public static void main(String[] args) { //创建ArrayL

C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、SortedList类)

1.ArrayList类 ArrayList类主要用于对一个数组中的元素进行各种处理.在ArrayList中主要使用Add.Remove.RemoveAt.Insert四个方法对栈进行操作.Add方法用于将对象添加到 ArrayList 的结尾处:Remove方法用于从 ArrayList 中移除特定对象的第一个匹配项:RemoveAt方法用于移除 ArrayList 的指定索引处的元素:Insert方法用于将元素插入 ArrayList 的指定索引处. 示例 ArrayList的使用 示例将介

Java核心类库—集合框架—ArrayList类

ArrayList类是java集合框架出现之后取代Vector类的 二者底层原理都是基于数组的算法,一模一样. 区别: Vector:所有的方法都使用了synchronize修饰符 线程安全但是性能较低,适用于多线程环境. ArrayList:所有的方法都没使用synchronize修饰符 线程不安全但性能较高. 即使以后多线程也不要使用Vector类 因为:List list = Collections.synchronizedList(new ArrayList(...)); 常用方法参照V

Java之ArrayList类(集合)

集合的由来 我们想存储多个数据,选择的容器可以是数组.而数组的长度是固定的,无法适应数据变化的需求.为了解决这个问题,Java提供了另一个容器 java.util.ArrayList 集合类,让我们可以更便捷的存储和操作对象数据.数组的长度不可以发生改变.但是ArrayList集合的长度是可以随意变化的. ArrayList类概述 java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素.此类提供一些方法来操作内部存储的元素. ArrayList 中可不断添加元素,

ArrayList类的用法

1.什么是ArrayList ArrayList就是传说中的动态数组,是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2.如何使用ArrayList 最简单的例子: ArrayList List = new ArrayList(); for( int i=0;i <10;i++ ) //给数组增加10个Int元素 List.Add(i); //..程序做一些处理 List.RemoveAt(5);//将第6

Java集合---ArrayList源码

本文转载自博客园牛奶.不加糖 原文地址:http://www.cnblogs.com/ITtangtang/p/3948555.html 本文仅供本人学习参考使用,如有侵权立即删除. 一. ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存. ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安

C#中ArrayList类的使用

ArrayList类 使用大小可按须要动态添加的数组实现IList接口 命名空间:System.Collections 程序集:mscorlib 语法: public class ArrayList:IList, ICollection, IEnumerable, ICloneable 1.ArrayList加入元素 1.1 ArrayList.Add方法: 语法:public virtual int Add(Object value) 将对象加入到ArrayList的结尾处 ArrayList

Java集合---Array类源码解析

Java集合---Array类源码解析              ---转自:牛奶.不加糖 一.Arrays.sort()数组排序 Java Arrays中提供了对所有类型的排序.其中主要分为Primitive(8种基本类型)和Object两大类. 基本类型:采用调优的快速排序: 对象类型:采用改进的归并排序. 1.对于基本类型源码分析如下(以int[]为例): Java对Primitive(int,float等原型数据)数组采用快速排序,对Object对象数组采用归并排序.对这一区别,sun在

C# 之 集合ArrayList

.NET Framework提供了用于数据存储和检索的专用类,这些类统称集合. 这些类提供对堆栈.队列.列表和哈希表的支持.大多数集合类实现系统的接口.以下我们主要来讲一下ArrayList.     ArrayList是命名空间Systrm.Collections下的一部分.它是使用大小可按需动态添加的数组实现IList接口.     ArrayList的容量是ArrayList能够保存的元素数. ArrayList的默认初始容量为0.随着元素加入到ArrayList中,容量会依据须要通过又一