java linkedlist问题,怎么向linkedlist中add数组?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java linkedlist问题,怎么向linkedlist中add数组?相关的知识,希望对你有一定的参考价值。
java linkedlist问题,怎么向linkedlist中add数组?
import org.apache.commons.lang.StringUtils;import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class TestLinkList
public static void main(String[] args)
LinkedList<String> linkedList = new LinkedList<String>();
List<String> nodeList = new ArrayList<String>();
nodeList.add("1");
nodeList.add("2");
nodeList.add("3");
linkedList.addAll(nodeList);
Iterator<String> iterator = linkedList.iterator();
while(iterator.hasNext())
System.out.println(iterator.next());
输出结果:
1
2
3
能解释一下最后四行吗
能解释一下最后四行吗
参考技术A LinkedList<int[]> list = new LinkedList<int[]>(); 创建一个LinkedList集合,元素类型是int[] 型数组;list.add(arr); 添加一个名为arr的数组元素;
arr的属性及类型是根据泛型里面的内容定,可以是任意一类对象追问
那get的时候get(0)表示返回第一个元素吗),如果要取出数组中的某一个元素要怎么写呢?谢谢
追答get(0)就是表示返回第一个元素,
接着继续调用数组的调用元素的方法啊
比如第一个数组的第一个元素get(0)[0]
那linkedlist里面有没有指向下一个元素的方法就像p=p.next就把p引用到下一个元素了
追答你要遍历LinkedList集合的话可以用
for(int[] p:LinkedList)
for( int i : p)
System.out.println(i);
p就是每一个数组对象的代表,会遍历所有数组对象,i是每个数组对象中的元素,会遍历所有数组中的数字元素,这块不知道你想表达什么意思,不懂的话继续问
其实是一个约瑟夫环问题:问题描述:有编号为1, 2…n 的 n 个人按顺时针方向围坐一圈,每人持有一个正整数密码(每个人持有的密码m不一定相同)。开始给定一个正整数 m,从第一个人按顺时针方向自1开始报数,报到m者出列,不再参加报数,这时将出列者的密码作为m,从出列者顺时针方向的下一人开始重新自1开始报数。如此下去,直到所有人都出列。试设计算法,输出出列者的序列。我是这样写的 有点长,我在下边粘出来
可以运行但是结果不对
能帮忙看一下吗
初学java思路不太清晰
追答import java.util.ArrayList;
import java.util.Scanner;
public class Demo3
public static void main(String[] args)
Integer[] arr=0,1,2,3,4,5,6,7,8,9;
ArrayList list = new ArrayList();
for (int i = 0; i list.size())
index =(m+a)-list.size();
else
index = m+a;
System.out.println(i+":"+list.get(index-1));
list.remove(index-1);
if (index>list.size())
a=index-list.size();
else
a=index;
你的代码我看不太懂,你可以参考参考我这代码
Java Linked集合的简单介绍和常用方法的使用
LinkedList的简单介绍
java.util.LinkedList 集合数据存储的结构是链表结构。LinkedList是一个双向链表
在实际开发中,对一个集合元素的添加和删除,经常涉及到首尾操作,而LinkedList就提供了大量的首尾操作的方法
LinkedList集合的特点
1、方便元素的添加、删除
2、元素的查询慢
2、里面包括了大量首尾首尾操作的方法
注意:LinkedList集合的方法不能使用多态
为什么说LinkedList集合添加、删除元素方便,查询元素慢
首先,LinkedList集合数据存储的结构是链表结构,
而链表是添加、删除元素方便,查询元素慢的:
查询慢:链表中地址不是连续的每次查询元素都必须从头开始查询
增删快:链表结构增加/删除一个元素对链表的整体结构没有影响,所以增删快
操作集合首尾的方法、是否为空判断方法
public void addFirst(E e):将指定元素插入此列表的开头。 public void addLast(E e):将指定元素添加到此列表的结尾。 public E getFirst():返回此列表的第一个元素。 public E getLast():返回此列表的最后一个元素。 public E removeFirst():移除并返回此列表的第一个元素。 public E removeLast():移除并返回此列表的最后一个元素。 public void push(E e):将元素推入此列表所表示的堆栈。 public E pop():从此列表所表示的堆处弹出一个元素。 public boolean isEmpty():如果列表不包含元素,则返回true
addFirst()和addLast()方法
public class DemoLinkedListAddFirstLast { public static void main(String[] args) { // 创建LinkedList链表集合对象 LinkedList<String> linkedList = new LinkedList<>(); // 向linkedList添加元素 linkedList.add(0, "链表元素0"); linkedList.add(1, "链表元素1"); linkedList.add(2, "链表元素2"); linkedList.add(3, "链表元素3"); linkedList.add(4, "链表元素4"); linkedList.add(5, "链表元素5"); System.out.println(linkedList); // 用addFirst方法向链表集合开头添加一个元素 linkedList.addFirst("开头"); // 用addLast方法向链表集合开头添加一个元素 linkedList.addLast("结尾"); System.out.println(linkedList); } }
输出结果:
[链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5]
[开头, 链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5, 结尾]
getFirst()和getLact()方法
import java.util.LinkedList; public class DemoLinkedListGetFirstLast { public static void main(String[] args) { // 创建LinkedList链表集合对象 LinkedList<String> linkedList = new LinkedList<>(); // 向linkedList添加元素 linkedList.add(0, "链表元素0"); linkedList.add(1, "链表元素1"); linkedList.add(2, "链表元素2"); linkedList.add(3, "链表元素3"); linkedList.add(4, "链表元素4"); linkedList.add(5, "链表元素5"); System.out.println(linkedList); // 获取此列表的第一个元素。 String first = linkedList.getFirst(); // 获取此列表的最后一个元素。 String last = linkedList.getLast(); System.out.println("第一个元素:" + first); System.out.println("最后一个元素:" + last); } }
输出结果:
[链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5]
第一个元素:链表元素0
最后一个元素:链表元素5
removeFirst()和removeLast()方法
import java.util.LinkedList; public class DemoLinkedListRemoveFirstLast { public static void main(String[] args) { // 创建LinkedList链表集合对象 LinkedList<String> linkedList = new LinkedList<>(); // 向linkedList添加元素 linkedList.add(0, "链表元素0"); linkedList.add(1, "链表元素1"); linkedList.add(2, "链表元素2"); linkedList.add(3, "链表元素3"); linkedList.add(4, "链表元素4"); linkedList.add(5, "链表元素5"); System.out.println(linkedList); // 移除并返回此列表的第一个元素 String first = linkedList.removeFirst(); // 移除并返回此列表的最后一个元素 String last = linkedList.removeLast(); System.out.println("移除的第一个元素:" + first); System.out.println("移除的最后一个元素:" + last); System.out.println("此时的集合:" + linkedList); } }
输出结果:
[链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5]
移除的第一个元素:链表元素0
移除的最后一个元素:链表元素5
此时的集合:[链表元素1, 链表元素2, 链表元素3, 链表元素4]
push()和pop()方法
说明:push()方法和addFirst()方法功能一样
pop()方法和removeFirst()方法功能一样
import java.util.LinkedList; public class DemoLinkedListPushPop { public static void main(String[] args) { // 创建LinkedList链表集合对象 LinkedList<String> linkedList = new LinkedList<>(); // 向linkedList添加元素 linkedList.add(0, "链表元素0"); linkedList.add(1, "链表元素1"); linkedList.add(2, "链表元素2"); System.out.println("原集合:" + linkedList); // 将元素推入此列表所表示的堆栈 linkedList.push("push元素"); System.out.println("push()操作后的集合:" + linkedList); // 从此列表所表示的堆处弹出一个元素 linkedList.pop(); System.out.println("push()操作后的集合:" + linkedList); } }
输出结果:
原集合:[链表元素0, 链表元素1, 链表元素2]
push()操作后的集合:[push元素, 链表元素0, 链表元素1, 链表元素2]
push()操作后的集合:[链表元素0, 链表元素1, 链表元素2]
isEmpty()方法
import java.util.LinkedList; public class DemoLinkedListIsEmpty { public static void main(String[] args) { // 创建LinkedList链表集合对象 LinkedList<String> linkedList = new LinkedList<>(); boolean b1 = linkedList.isEmpty(); System.out.println("集合是否为空:" + b1); // 向linkedList添加元素 linkedList.add(0, "链表元素0"); linkedList.add(1, "链表元素1"); linkedList.add(2, "链表元素2"); boolean b2 = linkedList.isEmpty(); System.out.println("集合是否为空:" + b2); } }
输出结果: 集合是否为空:true 集合是否为空:false
以上是关于java linkedlist问题,怎么向linkedlist中add数组?的主要内容,如果未能解决你的问题,请参考以下文章