我目前正在尝试编写一个方法insertEnd
,它使用尾部引用在列表的末尾插入一个节点。由于我还在了解它,我不知道如何处理这个问题。如果您有任何建议或解决方案,请告诉我,因为它对我有很大帮助。
package lib;
public class LinkedList {
private Node head;
private Node tail;
public LinkedList(Node h){
head = h;
}
public Node getHead(){
return head;
}
public Node getTail(){
return tail;
}
public void setHead(Node n){
head = n;
}
public void insertEnd(Node newNode){
}
public class ListApp {
public static void main(String[] args){
Node n4 = new Node("green", null);
Node n3 = new Node("orange", n4);
Node n2 = new Node("blue", n3);
Node n1 = new Node("red", n2);
package lib;
public class Node {
private String item;
private Node nextItem;
public Node(String str, Node n){
item = str;
nextItem = n;
}
public String getItem(){
return item;
}
public void setItem(String str){
item = str;
}
public Node next(){
return nextItem;
}
public void setNext(Node n){
nextItem = n;
}
public String getHead(){
return item;
}
}
答案 0 :(得分:1)
这是一个可能的解决方案:
public void insertEnd(Node newNode){
newNode.setNext(null);
if (tail == null) {
tail = newNode;
head = newNode;
} else {
tail.setNext(newNode);
tail = newNode;
}
}
答案 1 :(得分:0)
假设您的节点持有对next的引用,
public class CourierActivity extends AppCompatActivity {
...
//Don't forget to intialize your List
private List<OrderListItem> listItems = new ArrayList<OrderListItem>();
...
private void loadOrdersData() {
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest sr = new StringRequest(Request.Method.GET, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
listItems = new ArrayList<>();
try {
String rsp = new String(response.getBytes("ISO-8859-1"), "UTF-8");
JSONArray orders = new JSONArray(rsp);
for (int i = 0; i < orders.length(); i++) {
OrderListItem listItem = new OrderListItem(
// ..
);
listItems.add(listItem);
}
//set list to adapter this way
adapter.setList(listItems);
} catch (JSONException | UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT);
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
return params;
}
};
queue.add(sr);
}
}
P.S:为了方便起见,Java已经实现了LinkedList。