1.raylistԴ??
2.ArrayList 和LinkedList各自的特点是什么?
3.java,å
³äºå©ç¨åå°èªå¨è®¾ç½®List<T>ä¸Tçç±»å
4.java <T>TåTçåºå«
raylistԴ??
import java.util.ArrayList;import java.util.Collections;
import java.util.Scanner;
public class GradeList {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Scanner in = new Scanner(System.in);
int grade;
System.out.print("请输入成绩,以空格隔开,键入-1结束:");
while ((grade = in.nextInt())!=-1){
if(grade>=0&&grade<=)
list.add(grade);
}
System.out.println("实际统计的人数为:"+list.size()+"\n实际统计的成绩为:"+list);
System.out.println("平均分:"+getAvg(list));
System.out.println("最高分:"+getMax(list));
System.out.println("最低分:"+getMin(list));
System.out.println("不及格:"+getBad(list));
}
public static double getAvg(ArrayList<Integer> list){
int sum = 0;
for (int i = 0; i < list.size(); i++) {
sum += list.get(i);
}
return (double)sum/list.size();
}
public static int getMax(ArrayList<Integer> list){
Collections.sort(list);
return list.get(list.size()-1);
}
public static int getMin(ArrayList<Integer> list){
Collections.sort(list);
return list.get(0);
}
public static ArrayList getBad(ArrayList<Integer> list){
Collections.sort(list);
ArrayList<Integer> badGradeList = new ArrayList<Integer>();
for (int index=0; index < list.size(); index++) {
int grade = list.get(index);
if (grade<)
badGradeList.add(grade);
}
return badGradeList;
}
}
main方法
求平均、最高、最低、不及格方法
ArrayList 和LinkedList各自的特点是什么?
1、ArrayList:动态数组。用MSDN中的商业源码搭建说法,就是Array的复杂版本,它提供了动态的增加和减少元素,实现了ICollection和IList接口,灵活的设置数组的大小等好处。
2、LinkedList:双向列表。
列表中的手动编译Java源码每个节点都包含了对前一个和后一个元素的引用。
List 接口的大小可变数组的实现,位于API文档的java.util.ArrayList<E>。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的有趣照片js源码数组的大小。
size、isEmpty、get、set、iterator 和 listIterator 操作都以固定时间运行。add 操作以分摊的vb运行壳源码固定时间 运行,也就是说,添加 n 个元素需要 O(n) 时间。其他所有操作都以线性时间运行(大体上讲)。
与用于 LinkedList 实现的常数因子相比,此实现的常数因子较低。
每个 ArrayList 实例都有一个容量。java选座源码该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长。并未指定增长策略的细节,因为这不只是添加元素会带来分摊固定时间开销那样简单。
扩展资料
常用方法:
1、boolean add(E e):将指定的元素添加到此列表的尾部。
2、void add(int index, E element):将指定的元素插入此列表中的指定位置。
3、boolean addAll(Collection<? extends E> c):按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。
4、boolean addAll(int index, Collection<? extends E> c):从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。
5、void clear():移除此列表中的所有元素。
6、Object clone():返回此 ArrayList 实例的浅表副本。
百度百科-arraylist
java,å ³äºå©ç¨åå°èªå¨è®¾ç½®List<T>ä¸Tçç±»å
æ³åå¯ä»¥ç¨"<T>"代表ï¼ä»»æç±»åçã
解éï¼ â<T>âæ¯æ³åçé»è®¤å¼ï¼å¯ä»¥è¢«ä»»æç±»åæ代æ¿ï¼å¦ï¼
List<String> list = new ArayList<String>()ï¼è¿ä¸ªå°±å®ä¹äºä¸ä¸ªStringç±»åçâæ³åâéåï¼é£ä¹Tçç±»åå°±æ¯å符串ã
List<T> list = new ArayList<T>()ï¼
å¯ä»¥èµå¼ç»listï¼list.add("StringBatch");
å¯ä»¥è·åå°listçå¼ï¼list.get(0),ç»æå°±æ¯âStringBatchâï¼
è¿ä¸ªæ¶åTçç±»åä¹æ¯Stringãä¹å°±æ¯è¯´Tæ¯å¨æçï¼å¯ä»¥è¢«ä»»ææå®ç±»åã
java <T>TåTçåºå«
å¨ä½ è¿æ®µä»£ç éé¢æ¯æ²¡æåºå«çï¼å®é ä¸å¦ææ¯<T>çè¯ï¼æ¯å¯ä»¥ä¼ åæ°classçï¼ä¹å°±æ¯è¯´ï¼å¦æè¯´ä½ å£°æTest<T>ç对象çæ¶ågetT2çè¿åç±»å就已ç»ç¡®å®äºï¼ä½æ¯getT3çè¿åå¼çç±»åå´å¯ä»¥æ¯ä½ ä¼ è¿æ¥çåæ°classçç±»åï¼ä¹å°±æ¯è¯´è¿ä¸ªæ¹æ³çè¿åå¼çç±»åå¯ä»¥å¨ä½ è°ç¨æ¹æ³æ¶åè¿è¡è®¾å®