javalinkedlist
1. java中的linklist有哪些用法,list.add,list.getFirst(),這些是什麼意思
LinkedList 是List介面的鏈接列表實現。(建議去下一個jdk的文檔看看)
實例化例子:List<T> list = new LinkedList<T>();//(T是泛型,即所有對象)
如:List<Integer> list = new LinkedList<Integer>();
list.add(Obj);//是往鏈表中的結尾插入一個元素,
list.add(index,Obj);//則是往鏈表中的指定位置"index"插入一個元素
list.getFirst();//取得鏈表的第一個元素相當於:list.get(0);
你的追問中因為看不到前後不好分析
else if(list.size()==1)
{
int number=b.getnumber();
String num=list.getFirst();//return object 除非是LinkedList<String>()集合,否則通不過編譯。
//而如果是基礎類型的話可以強轉來賦值 String num=(String)list.getFirst();
String s=num.concat(" "+number);//字元串拼接,相當於:String s = num+number;
//PS:整形類型加上一個字元串就會轉換成字元串類型,如:int t=123;String s=t+"";//(或s=t+"12";)
list.set(0,s);//就是將鏈表的 第 0 個位置的元素用 s 來替換掉
}
按代碼往下看結果就是 得到list 中的第1個元素並拼接上b.getnumer()後再替換掉
2. 求用Java的LinkedList類創建一個鏈隊列(LinkedQueue)類
LinkedQueue類代碼:
import java.util.LinkedList;
public class LinkedQueue {
private LinkedList list;
private LinkedQueue() {
}
public LinkedQueue(LinkedList list) {
this.list = list;
}
//入隊
public void add(Object obj) {
this.list.add(obj);
}
//獲取隊關元素
public Object get() {
return this.list.getFirst();
}
//出隊
public void next() {
this.list.removeFirst();
}
//判定為空
public boolean isEmpty() {
return this.list.isEmpty();
}
//獲取當前列隊長度
public int size() {
return this.list.size();
}
}
測試類代碼:
import java.util.LinkedList;
public class Test {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.add("no1");
list.add("2");
list.add("215");
//獲取初始linkedqueue;
LinkedQueue lq = new LinkedQueue(list);
System.out.println("獲取隊頭元素 : " + lq.get());
lq.add("add");
System.out.println("入隊後隊列長度:: " + lq.size());
lq.next();
System.out.println("出隊隊列長度 : " + lq.size());
System.out.println("出隊後隊頭元素 : " + lq.get());
System.out.println("判定為空 : " + lq.isEmpty());
}
}
3. Java中Arraylist與linkedlist的區別
List: 有順序的,元素可以重復
遍歷:for 迭代
排序:Comparable Comparator Collections.sort()
ArrayList:底層用數組實現的List
特點:查詢效率高,增刪效版率低 輕量級權 線程不安全
遍歷:
ArrayList<String> al=new ArrayList();
al.add("winsun"); al.add("weixin"); al.add("mybole");
for(int i=0;i<al.size();i++)
{
System.out.println(al.get(i));
}//for遍歷
Iterator it=al.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}//迭代器遍歷
LinkedList:底層用雙向循環鏈表 實現的List
特點:查詢效率低,增刪效率高
Vector: 底層用數組實現List介面的另一個類
特點:重量級,占據更多的系統開銷 線程安全
4. ArrayList與 LinkedList的區別,為什麼JAVA提供這樣兩種同樣帶有順序的集合類,它們有什麼不同
List: 有順序的,元素可以重復 遍歷:for 迭代 排序:Comparable Comparator Collections.sort() ArrayList:底層用數組實現的List 特點版:查詢效率高,增刪效權率低 輕量級 線程不安全遍歷:ArrayList al=new ArrayList(); al.add("winsun"); al.add("weixin"); al.add("mybole"); for(int i=0;i<al.size();i++){System.out.println(al.get(i));}//for遍歷Iterator it=al.iterator(); while(it.hasNext()){System.out.println(it.next()); }//迭代器遍歷 LinkedList:底層用雙向循環鏈表 實現的List 特點:查詢效率低,增刪效率高 Vector: 底層用數組實現List介面的另一個類 特點:重量級,占據更多的系統開銷 線程安全
5. java linkedlist怎麼輸出
//估計你說的是遍歷輸出吧
LinkedList<String>list=newLinkedList<String>();
for(Strings:list){
System.out.println(s);
}
for(inti=0;i<list.size();i++){
System.out.println(list.get(i));
}
6. java中使用LinkedList實現一個類
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
public class A {
public void getList(String str){
<String> l = new LinkedList<String>();
for(int i = 0 ; i < str.length() ; i++){
char c = str.charAt(i) ;
if(c == '+' && i < str.length()-1){
l.add(str.charAt(i+1)+"");
}else if(c == '-'){
if(l.size() > 0){
System.out.println(l.getFirst());;
l.removeFirst();
}
}
}
System.out.println("最後結果:");
if(l.size() == 0){
System.out.println("最後的棧里不存在內容");
}
for(int i = 0 ; i < l.size() ; i++){
System.out.print(l.get(i));
}
}
public static void main(String[] args) {
new A().getList("+U+n+c-+e+r+t-+a-+i-+n+t+y-+-+r+u-+l+e+s--");
}
}
7. Java中linkedlist集合取出部分元素的方法
Listlist=newLinkedList<>();
屬list.add(1);
list.add(2);
list.add(3);
Listlist1=list.subList(list.indexOf(2)+1,list.size());
for(Objectobject:list1){
System.err.println(object);
}
8. java 怎麼把鏈表(linkedList) 的內容輸出
toString()方法是從Object類繼承過來的方法,你需要在SortedTopicList 里重寫toString()方法,方法里 根據len做循環,調用你寫的get(i)方法輸出每一個
9. Java。如何將一個LinkedList里的元素全部復制到另一LinkedList容器里
LinkedList的Clone()只是淺復制,也就是只能復制對象的引用,而不能再內存中新生成一個對象,所以你復制之後的LinkedList和原始的LinkedList中存儲的對象是共享的。
要想不共享,那隻能覆蓋你原始LinkedList中存放類的Clone()方法,在這個方法中new一個這個類的新實例,將對象的屬性賦值給一個新實例。
然後new一個新的LinkedList實例,遍歷原始LinkedList中的每個元素,調用這個元素的Clone(),將得到的新元素添加到新的LinkedList中。
大概的代碼意思如下
ElementClass是LinkedList中存儲的元素的類
public class ElementClass{
private String attributeOne;
......
public void setAttributeOne(String attValue){
this.attributeOne = attValue;
}
/* 覆蓋Clone方法,新建一個本類的實例,並將對象的屬性值完全復制過去*/
public Object Clone(){
ElementClass newInstance = new ElementClass();//新建一個本類實例
newInstance.setAttributeOne(this.attributeOne);//復制屬性
return newInstance;
}
}
LinkedList newList = new LinkedList();//新建一個LinkedList實例
Iterator it = oldList.iterator();獲取原始List的遍歷器
while(it.hasNext()){
newList .add(((ElementClass) it.next()).clone());//遍歷元素,將克隆的新對象加入新的List中
}
10. Java如何給LinkedList賦值並遍歷
publicclasstest{
publicstaticvoidmain(String[]args){
LinkedList<Integer[][]>page=newLinkedList<Integer[][]>();
Integer[][]matrix1={{5,6,7},{8,9,10}};
Integer[][]matrix2={{1,2,3,5},{4,5,6,20},{9,2,1,19}};
page.add(matrix1);
page.add(matrix2);
for(Integer[][]x:page){//遍歷page中的數組
//遍歷page中的多維數組
for(inti=0;i<x.length;i++){//多維數組中x.length是行數
System.out.print("{");
for(intj=0;j<x[i].length;j++){//x[0]~x[n]的length是列數
System.out.print(x[i][j]);//輸出行j列
System.out.print(",");
}
System.out.println("}");
}
}
}
}
賦值用add,遍歷用多重循環,遍歷輸出結果如下