java.util包中的LinkedList<E>泛型类创建的对象以链表结构存储数据,习惯上称LinkedList类创建的对象为链表对象。
LinkedList<String> myList=new LinkedList<String>(); //创建一个空双链表
使用LinkedList<E>泛型类声明创建链表时,必须要指定E的具体类型,然后链表就可以使用 add(E obj)方法向链表依次增加结点。
mylist.add("How"); mylist.add("Are"); mylist.add("You"); mylist.add("Java");
这时,链表mylist就有了4个结点,结点自动连接到一起,不需要我们做链接。
常用方法
1 boolean add(E e); 向集合中添加元素
2 boolean addFirst(E e); 向集合开头添加元素
3 boolean addLast(E e); 向集合尾部添加元素
4 E getFirst(); 从集合中获取头部元素
5 E getLast(); 从集合中获取尾部元素
6 E removeFirst(int index); 从集合中删除第一个元素,并返回该元素
7 E removeLast(int index); 从集合中删除最后一个元素,并返回该元素
8 E pop(); 弹出首部一个元素
9 void push(); 向集合头添加一个元素
10 boolean isEmpty(); 判断集合是否为空
小王子单链表 ---- 蓝桥杯
题目描述
小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。
在冒泡排序中,每次只能交换相邻的两个元素。
小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符,在所有可能的排序方案中,冒泡排序的总交换次数是最少的。
例如,对于字符串 lan
排序,只需要 1 次交换。对于字符串 qiao
排序,总共需要 4 次交换。
小蓝的幸运数字是 V,他想找到一个只包含小写英文字母的字符串,对这个串中的字符进行冒泡排序,正好需要 V 次交换。请帮助小蓝找一个这样的字符串。如果可能找到多个,请告诉小蓝最短的那个。如果最短的仍然有多个,请告诉小蓝字典序最小的那个。请注意字符串中可以包含相同的字符。
输出描述
共 M 行,第 i 行输出小王子第 i 次排完序后玩具的编号序列。
输入输出样例
-- 输入
5 3 2 3 4 2
-- 输出
3 1 2 4 5 6 7 8 9 10 2 3 1 4 5 6 7 8 9 10 3 2 1 4 5 6 7 8 9 10 4 3 2 1 5 6 7 8 9 10 2 4 3 1 5 6 7 8 9 10
import java.util.*; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); LinkedList<Integer> list = new LinkedList<>(); //创建链表 for(int i=1;i<=10;i++) list.add(i); //添加链表元素 int n=scan.nextInt(); int str; for(int i=0;i<n;i++){ str=scan.nextInt(); list.remove(list.indexOf(str)); //去除坐标上的指定元素 list.add(0,str); //在第一个位置上添加 str元素 for(int s:list){ System.out.print(s+" "); } System.out.println(); } scan.close(); } }
标签:10,java,LinkedList,元素,小蓝,链表,add,------ From: https://www.cnblogs.com/mcpf/p/17115147.html